7
$ 0是否总是包含脚本的路径?
我想grep当前脚本,以便可以从顶部的注释部分打印出帮助和版本信息。 我在想这样的事情: grep '^#h ' -- "$0" | sed -e 's/#h //' 但是后来我想知道,如果脚本位于PATH中的目录中并且在未显式指定目录的情况下调用该脚本,将会发生什么情况。 我搜索了有关特殊变量的说明,并找到了以下说明$0: 当前shell或程序的名称 当前脚本的文件名 脚本本身的名称 运行命令 $0如果没有该脚本而调用脚本,则这些命令都不能清楚表明目录的值是否包含该目录。最后一个实际上向我暗示不会。 在我的系统上测试(Bash 4.1) 我在/ usr / local / bin 中用一行创建了一个名为scriptname的可执行文件,echo $0并从不同位置调用了它。 这些是我的结果: > cd /usr/local/bin/test > ../scriptname ../scriptname > cd /usr/local/bin > ./scriptname ./scriptname > cd /usr/local > bin/scriptname bin/scriptname > cd …
11
shell-script
path