让 $PWD 在 bash 脚本中工作时遇到一些问题......
我在同一目录中有两个脚本:
~/outer.sh, ~/inner.sh
。我习惯这样outer.sh
调用:inner.sh
(outer.sh内容如下所示)
#!/bin/bash
$PWD/inner.sh
但这似乎行不通。进一步的调查显示 $PWD 似乎无法访问,因为我在这里使用了它( 没有出现任何内容printf $PWD >> logfile.txt
),并且我怀疑它与从脚本调用脚本有关......任何人都可以澄清这里发生了什么吗?
答案1
$PWD
是当前目录,而不是包含脚本的目录。没有理由inner.sh
位于当前目录中。
脚本的路径存储在$0
.您可以提取其目录部分来查找包含脚本的目录。
script_directory=$(dirname -- "$0")
"$script_directory/inner.sh"