什么是$? shell脚本中$ 0 $ 1 $ 2的意思是?

我经常碰到$? $0 $1 $2 etc.... $? $0 $1 $2 etc....在shell脚本中,我知道的是$? 返回最后一个命令的退出状态

 echo "this will return 0" echo $? 

但其他人做了什么? 他们叫什么,还有更多? 也许就像$ 3 $ 4 $ 5 …

这些是脚本的位置参数。

执行

 ./script.sh Hello World 

会做出

 $0 = script.sh $1 = Hello $2 = World 

他们被称为位置参数 。

3.4.1位置参数

位置参数是由一个或多个数字表示的参数,而不是单个数字0.位置参数在被调用时从shell的参数中分配,并且可以使用set builtin命令重新分配。 位置参数N可以被引用为$ {N},或者当N由单个数字组成时,作为$ N。 位置参数不能用赋值语句赋值。 set和shift builtins用于设置和取消设置(参见Shell Builtin命令)。 当执行一个shell函数时,位置参数会暂时被replace(请参阅Shell函数)。

当一个位数超过一位数字的参数被展开时,它必须用大括号括起来。