Ma9*_*9uS 8 linux bash scripting
当我需要在脚本本身内部获取脚本文件的路径时,我使用以下内容:
`dirname $0`
Run Code Online (Sandbox Code Playgroud)
这工作文件,直到我通过sym链接调用脚本.在这种情况下,上面的代码打印链接的位置而不是原始文件.
有没有办法获取原始脚本文件的路径,而不是链接?
谢谢,迈克
dsm*_*dsm 15
if [ -L $0 ] ; then
DIR=$(dirname $(readlink -f $0)) ;
else
DIR=$(dirname $0) ;
fi ;
Run Code Online (Sandbox Code Playgroud)
lhu*_*ath 15
您真的需要阅读以下BashFAQ文章:
事实上,$0黑客攻击是不可靠的,并且只要应用程序以第0个参数启动而不是应用程序的路径,它们就会失败.例如,login(1)将一个-应用程序名称放在前面$0,导致破坏,并且每当您调用的应用程序PATH $0将不包含应用程序的路径而只包含文件名时,这意味着您无法提取任何位置信息它的.还有很多方法可能会失败.
底线:不要依赖黑客,事实是你无法弄清楚你的脚本在哪里,所以使用配置选项来设置配置文件的目录或者你需要脚本的路径.
| 归档时间: |
|
| 查看次数: |
18931 次 |
| 最近记录: |