調用shell腳本時,獲取腳本的當前目錄

寫shell腳本,一般需要把腳本的當前目錄作爲工作目錄,如何獲取當前腳本的目錄呢?
在執行腳本中如何取得腳本所在的目錄,分兩種情況:

  1. 如果腳本當前路徑下執行腳本,那麼直接pwd取得絕對路徑
  2. 而如果是從其他目錄來調用腳本的情況,需要先cd到腳本所在目錄,再取得腳本所在的絕對路徑
    提供一下兩種方法:
    第一種稍微繁瑣:
    getCurPath()
    {
    if [ "` dirname "$0" `" = "" ] || [ "` dirname "$0" `" = "." ] ; then
        CURRENT_PATH="`pwd`"
    else
        cd ` dirname "$0" `
        CURRENT_PATH="`pwd`"
        cd - > /dev/null 2>&1 #返回到上次目錄
    fi
    }

    第二種更簡潔:
    if [ `echo $0 | grep -c "/"` -gt 0 ];then
    cd ${0%/*}
    fi

CURRENT_DIR="$(pwd)"


推薦第二種寫法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章