2012-03-16 136 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

相关问题