假设我在program
中存储了一个名为/home/user/program.
的bash脚本,但是随后我使用ln -s /home/user/program /usr/bin/program
创建了一个指向bash脚本的符号链接。然后我cd /usr/home/anotherdirectory
,然后运行program
。如何获得bash脚本以打印/usr/home/anotherdirectory
来告诉我它是从哪里调用的?
我尝试了echo $PWD
,它只打印出/ usr / bin
答案 0 :(得分:1)
这应该在您的脚本中完成工作:
dirname $(readlink -e "$0")
来自man readlink
:
-e
:通过递归跟随给定名称的每个组件中的每个符号链接来规范化,所有组件都必须存在