获取目录 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
假设我有一个名为 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