在shell的當前文件夾下執行沒有問題,但是當通過另外的文件夾來執行該shell的時候,pwd可能無法滿足要求。
需要用下面的命令獲取該shell的"pwd"值
current_dir=$(cd "$(dirname "${0}")"; pwd)
例如:shell文件被放置在 /home/xdbms/workspace/makeEnv/utilities/sign/sign.sh
如果在目錄 /home/xdbms/workspace/makeEnv/utilities/sign/ 下來執行sign.sh的話
pwd的值是正確的,但是如果在/home/xdbms下來執行這個shell,所打出來的pwd值就不正確了。
shell腳本內容:
echo `pwd`
current_dir=$(cd "$(dirname "${0}")"; pwd)
echo $current_dir
執行shell腳本
[xdbms@qa4 ~]$ sh /home/xdbms/workspace/makeEnv/utilities/sign/sign.sh
輸出信息
++ pwd
+ echo /home/xdbms
/home/xdbms
+++ dirname /home/xdbms/workspace/makeEnv/utilities/sign/sign.sh
++ cd /home/xdbms/workspace/makeEnv/utilities/sign
++ pwd
+ current_dir=/home/xdbms/workspace/makeEnv/utilities/sign