Shell $0
我们已经知道在Shell中$0
表示Shell脚本的文件名,但在有脚本调用的情形中,子脚本中的$0
会是什么值呢?我们通过下面的实例来看。
已测试系统列表:
- Mac OS X EI Capitan 10.11.6
- Ubuntu 16.04 LTS (GNU/Linux 4.4.0-28-generic x86_64)
父脚本a.sh
,位置test1/a.sh
,内容如下:
1 | !/usr/bin/env bash |
子脚本b.sh
,位置test2/b.sh
,内容如下:
1 | !/usr/bin/env bash |
此时执行父脚本输出结果是:
1 | sh a.sh |
如果父脚本内容如下:
1 | !/usr/bin/env bash |
则输出结果为:
1 | sh a.sh |
可见,在父脚本中调用子脚本的不同,在子脚本中$0
的值也不同。至于为什么会这样本人需要继续学习以找到答案。
测试过程中注意给脚本赋可执行权限。