$0
通过变量获取 bash 中正在运行的脚本的路径是微不足道的。但是,如果您通过另一个脚本进行点缀,则它不起作用,而是您将获得调用脚本的路径。考虑这个例子:
#!/bin/bash
# script1.sh
echo $(readlink -f $0)
...
#!/bin/bash
# script2.sh
. /tmp/script1.sh
echo $(readlink -f $0)
上述脚本的输出是:
/tmp/script2.sh
/tmp/script2.sh
但是,如果$0
在带点的脚本中发出了该脚本的路径,则输出将改为:
/tmp/script1.sh
/tmp/script2.sh
我怎样才能得到正确的值?