我想获得执行脚本的绝对路径。 它的路径是/use/local/lib/debugger.sh。 它通过另一个文件夹中的$ PATH = / use / local / lib调用。 我搜索了一个示例脚本,发现了一个。
echo "path = $(cd $(dirname $0) && pwd)"
我希望我能得到绝对路径,/ use / local / lib。但结果并不是我的预期。我得到了调用脚本的目录的绝对路径。
如何获得脚本存在的绝对路径?
非常感谢。
答案 0 :(得分:1)
使用此:
#!/bin/bash
path="path = $(cd $(dirname $0) && pwd)"
script_name="${0##*/}"
echo "${path}/${script_name}"
或以“oneliner”风格echo "path = $(cd $(dirname $0) && pwd)/${0##*/}"
答案 1 :(得分:1)
如果它真的在你的$ PATH中,那么“which”命令应该找到它。
答案 2 :(得分:1)
将-P
选项添加到pwd
将确保脚本的dirname
中的符号链接(如果有)得到正确解析:
path=$(cd $(dirname $0) && pwd -P)