我希望能够使用命令执行位于我的主目录中的 bash 脚本~/script_name.sh
从任何目录,然后在脚本中获取运行它的目录。
例如。我在目录中/foo/bar/baz
,并执行/foo/script.sh
,它会打印出/foo/bar/baz
pwd
和$0
/$BASH_SOURCE
分别给我 shell 开始的目录和主目录中脚本的路径。
与其调用外部命令pwd
,不如考虑改用$PWD
。如果要防止某些恶意代码显式更改PWD
,请先执行cd .
(这是内部命令(,这会将PWD
还原到正确的值。