一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

linux中Shell脚本所在目录的绝对路径

时间:2013-01-04 编辑:简简单单 来源:一聚教程网

 代码如下 复制代码

baseDirForScriptSelf=$(cd "$(dirname "$0")"; pwd)
echo "full path to currently executed script is : ${baseDirForScriptSelf}"

或者


FULLPATH=$(cd "$(dirname "$0")"; pwd)
echo "full path to currently executed script is : ${FULLPATH}"
BASEDIR=`dirname $FULLPATH`
echo "parent dir is $BASEDIR"

这个功能很给力 直接得到绝对路径 把脚本整个目录及上级目录全部挪窝的好东西

方法二

 代码如下 复制代码

#!/bin/sh

name=$0
echo "name : $name"

dir=$(dirname ${name})
echo "dir  : $dir"

path=$(pwd)
echo "path : $path"

path=${dir/./${path}}
echo "path : $path"

实例

Shell代码 

 代码如下 复制代码
#!/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 

当路径中含有小数点时,该方法会有问题。修正方法为加入一个判断

 代码如下 复制代码

#!/bin/sh
path=$(dirname $0)
if [ ${path:0:1} == . ]
then
path=${path/./$(pwd)}
fi

热门栏目