【发布时间】:2020-06-01 23:55:19
【问题描述】:
我希望能够使用命令~/script_name.sh 从任何目录执行位于我的主目录中的 bash 脚本,然后在脚本中获取运行它的目录。
例如。我在目录/foo/bar/baz,执行/foo/script.sh,打印出/foo/bar/baz
pwd 和 $0/$BASH_SOURCE 分别给我我的 shell 启动的目录和我的主目录中脚本的路径。
【问题讨论】:
-
pwd是正确的答案。如果您认为看到其他内容,请发帖 MCVE -
@thatotherguy 是对的。这里有一个很好的解释stackoverflow.com/a/1482133/4175515
-
如果您添加minimal reproducible example 让其他人重现该问题,请告诉我。也就是说——
pwd或者更好的是$PWD在这里确实是正确的答案。 (顺便说一句——将来,标记 bash 或 sh,但不能同时标记两者;bash 主要是 POSIX sh 规范的超集,但有时它们会有所不同)。