获取 bash 脚本执行位置的 bash



我希望能够使用命令执行位于我的主目录中的 bash 脚本~/script_name.sh从任何目录,然后在脚本中获取运行它的目录。

例如。我在目录中/foo/bar/baz,并执行/foo/script.sh,它会打印出/foo/bar/baz

pwd$0/$BASH_SOURCE分别给我 shell 开始的目录和主目录中脚本的路径。

与其调用外部命令pwd,不如考虑改用$PWD。如果要防止某些恶意代码显式更改PWD,请先执行cd .(这是内部命令(,这会将PWD还原到正确的值。

最新更新