在温习 bash 时(已经有一段时间了),我惊讶地发现执行这段代码(另存为 script.sh):
echo "Arg 0 to script.sh: $0"
echo "Arg 1 to script.sh: $1"
function echo_args
{
echo "Arg 0 to echo_args: $0"
echo "Arg 1 to echo_args: $1"
}
echo_args
像这样:
>> ./script.sh argument
输出这个:
Arg 0 to script.sh: ./script.sh
Arg 1 to script.sh: argument
Arg 0 to echo_args: ./script.sh
Arg 1 to echo_args:
我很惊讶地发现 script.sh 的 $0 被作为 $0 传递给 echo_args,而 $1 没有得到类似的处理。在我看来,应该两者兼而有之,或者两者都不是。
任何澄清表示赞赏。
$0 是 bash 中的一个“特殊参数”,它的计算结果始终为脚本的名称,并在脚本的开头设置。看起来这也意味着它在某种程度上是全局的,因为它无法重新分配。
要了解更多信息,这是一个很好的参考:
http://bash.cyberciti.biz/guide/$0 http://bash.cyberciti.biz/guide/%240
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)