获取目录 Bash 如果脚本是 Sym Link,则从中调用脚本

Get Directory Bash Script is Called From if it's a Sym Link

假设我有一个名为 program 的 bash 脚本存储在 /home/user/program. 中,但随后我使用 bash 脚本创建了一个符号 link ln -s /home/user/program /usr/bin/program。然后我cd /usr/home/anotherdirectory然后运行program。我如何让 bash 脚本打印 /usr/home/anotherdirectory 来告诉我它是从哪里调用的?

我试过echo $PWD,结果只打印出/usr/bin

这应该可以完成您脚本中的工作:

dirname $(readlink -e "[=10=]")

来自man readlink

-e:canonicalize by following every symlink in every component of the given name recursively, all components must exist