获取被执行shell的全路径名

在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

你可能感兴趣的:(获取被执行shell的全路径名)