$做啥? $0 $1 $2 在 shell 脚本中是啥意思? [复制]
Posted
技术标签:
【中文标题】$做啥? $0 $1 $2 在 shell 脚本中是啥意思? [复制]【英文标题】:What do $? $0 $1 $2 mean in shell script? [duplicate]$做什么? $0 $1 $2 在 shell 脚本中是什么意思? [复制] 【发布时间】:2015-05-29 07:08:03 【问题描述】:我在shell脚本中经常遇到$? $0 $1 $2 etc....
,我知道$?
返回最后一个命令的退出状态
echo "this will return 0"
echo $?
但是其他人是怎么做的呢?他们叫什么,还有更多吗?也许像 $3 $4 $5 ...
【问题讨论】:
tldp.org/LDP/abs/html/othertypesv.html 【参考方案1】:这些是脚本的位置参数。
执行
./script.sh Hello World
会做
$0 = ./script.sh
$1 = Hello
$2 = World
注意
如果你执行./script.sh
,$0
会输出./script.sh
,但是如果你用bash script.sh
执行它会输出script.sh
。
【讨论】:
【参考方案2】:他们被称为Positional Parameters。
3.4.1 位置参数
位置参数是由一个或多个数字表示的参数,而不是单个数字 0。位置参数在调用时从 shell 的参数中分配,并且可以使用 set 内置命令重新分配。位置参数 N 可以引用为 $N,或者当 N 由单个数字组成时引用为 $N。位置参数不能用赋值语句赋值。 set 和 shift 内置命令用于设置和取消设置它们(请参阅 Shell 内置命令)。执行 shell 函数时,位置参数会被临时替换(请参阅 shell 函数)。
当一个包含多个数字的位置参数被展开时,它必须用大括号括起来。
【讨论】:
$?
是一个特殊的参数,在这里解释:gnu.org/software/bash/manual/bash.html#Special-Parameters以上是关于$做啥? $0 $1 $2 在 shell 脚本中是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章