假设我在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
这应该完成您脚本中的工作:
dirname $(readlink -e "$0")
来自man readlink
:
[
-e
:通过递归跟随给定名称的每个组件中的每个符号链接来规范化,所有组件必须存在]]