在我试图理解的脚本中,有以下两行:
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