这是纯粹的冗余还是这里发生了什么?

这是纯粹的冗余还是这里发生了什么?

在我试图理解的脚本中,有以下两行:

cd "$(cd -P -- "$(dirname -- "$0")" && pwd -P)"
root_path=$(pwd)

上面两个是否仅仅是下面一个的重复版本,或者那里到底发生了什么?

root_path=$(pwd -P)

答案1

不,pwd返回当前工作目录,而dirname -- "$0"返回正在运行的脚本所在的路径。它们可能偶然等同,但通常,它们可能完全不同。

cd "$dir1"         # <- $dir1 is now pwd
"$dir2"/script.sh  # <- $dir2 is the dirname of $0 inside of $0

相关内容