bash shell:獲取當前腳本的絕對路徑(pwd/readlink)


有時候,我們需要知道當前執行的輸出shell腳本的所在絕對路徑,可以用dirname實現。 
我們知道 dirname 可以獲取一個文件所在的路徑,dirname的用處是:

輸出已經去除了尾部的”/”字符部分的名稱;如果名稱中不包含”/”, 
則顯示”.”(表示當前目錄)。

下面是dirname的命令行說明: 
這里寫圖片描述 
從上面的描述可知道,直接從dirname返回的未必是絕對路徑,取決於提供給dirname的參數是否是絕對路徑。 
所以下面這樣的代碼中SHELL_FOLDER中不一定是絕對路徑

SHELL_FOLDER=$(dirname "$0")
  • 1

需要用cd和pwd命令配合獲取腳本所在絕對路徑,正確的寫法是這樣的,

SHELL_FOLDER=$(cd "$(dirname "$0")";pwd)
  • 1

如果你覺得上面的寫法比較麻煩,還有一個方式獲取腳本的絕對路徑,就是借助readlink命令,下面是readlink的命令行說明: 
這里寫圖片描述

所以用readlink命令我們可以直接獲取$0參數的全路徑文件名,然后再用dirname獲取其所在的絕對路徑:

SHELL_FOLDER=$(dirname $(readlink -f "$0"))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM