代码如下 | 复制代码 |
baseDirForScriptSelf=$(cd "$(dirname "$0")"; pwd) echo "full path to currently executed script is : ${baseDirForScriptSelf}" 或者 FULLPATH=$(cd "$(dirname "$0")"; pwd) |
这个功能很给力 直接得到绝对路径 把脚本整个目录及上级目录全部挪窝的好东西
方法二
代码如下 | 复制代码 |
#!/bin/sh name=$0 dir=$(dirname ${name}) path=$(pwd) path=${dir/./${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 |
时间: 2024-07-29 08:42:56