我有一个实用程序,该实用程序由几个目录以及一些bash脚本和支持文件组成,这些文件可能会部署到多台计算机上,并且可能位于每台计算机的不同目录中。脚本需要能够引用相对于它们自己的路径,因此我需要能够获取到当前正在执行的文件的路径。
我知道dirname $0
当直接调用我的脚本时,这种用法非常有效。不幸的是,人们希望能够从完全不同的目录创建指向这些脚本的符号链接,并且仍然具有相对的路径逻辑功能。
总体干线结构的示例如下:
/
|-usr/local/lib
| |-foo
| | |-bin
| | | |-script.sh
| | |-res
| | | |-resource_file.txt
|-home/mike/bin
| |-link_to_script (symlink to /usr/local/lib/foo/bin/script.sh)
我怎样才能可靠地引用/usr/local/lib/foo/res/resource_file.txt
来自script.sh
它是否被调用/usr/local/lib/foo/bin/script.sh
或~mike/bin/link_to_script
?