在复习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:
我惊讶地发现,当$1没有被同样处理时,script.sh的$0作为$0传递给echo_args的值为$0。 在我看来,它应该是都这样或都不这样。
如有任何疑问,请告知。