2012-03-16 140 views
0
echo $1 $2 $3 ' -> echo $1 $2 $3' 
args=("[email protected]") 
echo ${args[0]} ${args[1]} ${args[2]} ' -> args=("[email protected]"); echo ${args[0]} ${args[1]} ${args[2]}' 
echo [email protected] ' -> echo [email protected]' 
echo Number of arguments passed: $# ' -> echo Number of arguments passed: $#' 

這是假設是輸出Bash新手。不能將參數傳遞給bash腳本

This is suppose to be the output

,但我得到這個代替。

Jasons-MacBook-Pro:bash jasonkim$ bash arguments.sh 
-> echo $1 $2 $3 
-> args=("[email protected]"); echo ${args[0]} ${args[1]} ${args[2]} 
-> echo [email protected] 
Number of arguments passed: 0 -> echo Number of arguments passed: $# 

回答

3

的問題不在於你不能,那就是你沒有

bash arguments.sh Bash Scripting Tutorial 
0
#!/bin/bash 

for var in "[email protected]" 
do 
    echo "$var" 
done 

$ ./scr.sh ABC

輸出:

a 
b 
c 
  • 是的,很明顯的錯誤是,你根本不傳遞任何參數的腳本所有...也許嘗試運行:bash arguments.sh arg1 arg2 arg3
+1

'「$ @」'是'for'的默認目標。 – 2012-03-16 05:38:35

+0

好點。我只是試圖用「可讀」的方式來解釋它...... ;-) – 2012-03-16 05:40:02