我经常在shell脚本中遇到$? $0 $1 $2 etc....
,我知道$?
返回最后一个命令的退出状态
echo "this will return 0"
echo $?
但其他人做了什么?他们叫什么,还有更多吗?也许就像$ 3 $ 4 $ 5 ......
答案 0 :(得分:135)
这些是脚本的位置参数。
执行
./script.sh Hello World
将制作
$0 = ./script.sh
$1 = Hello
$2 = World
注意强>
如果您执行./script.sh
,$0
会提供输出./script.sh
,但如果您使用bash script.sh
执行输出,则会输出script.sh
。
答案 1 :(得分:24)
它们被称为Positional Parameters。
3.4.1位置参数
位置参数是由一个或多个数字表示的参数,而不是单个数字0.位置参数在调用时从shell的参数分配,并且可以使用set builtin命令重新分配。位置参数N可以引用为$ {N},或者当N由单个数字组成时为$ N.可以不使用赋值语句将位置参数分配给它们。 set和shift内置函数用于设置和取消设置它们(请参阅Shell Builtin命令)。执行shell函数时,临时替换位置参数(参见Shell函数)。
当展开由多个数字组成的位置参数时,必须将其括在大括号中。