代碼如下 |
複製代碼 |
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 |