linux 在shell脚本中获取该脚本的所在绝对路径

脚本名:a.sh

位置:/tmp/whuang/study/java

脚本内容:

#!/bin/sh
this_dir=`pwd`
dirname $0|grep "^/" >/dev/null
if [ $? -eq 0 ];then
                this_dir=`dirname $0`
else
        dirname $0|grep "^\." >/dev/null
        retval=$?
        if [ $retval -eq 0 ];then
                        this_dir=`dirname $0|sed "s#^.#$this_dir#"`
        else
                   this_dir=`dirname $0|sed "s#^#$this_dir/#"`
        fi
fi
echo $this_dir

 

----------------------------------------------

功能:获取脚本的绝对路径。

测试:

[root@ppc40 java]# pwd

/tmp/whuang/study/java

[root@ppc40 java]# sh a.sh

/tmp/whuang/study/java

[root@ppc40 java]# cd ..

[root@ppc40 study]# sh java/a.sh

/tmp/whuang/study/java

[root@ppc40 study]# sh ./java/a.sh

/tmp/whuang/study/java


猜你喜欢

转载自hw1287789687.iteye.com/blog/1726341