从另一个脚本调用 $PWD

从另一个脚本调用 $PWD

让 $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"

相关内容