bash shell獲取當前腳本的絕對路徑(pwd/readlink)
有時候,我們需要知道當前執行的輸出shell腳本的所在絕對路徑,可以用dirname實現。
我們知道 dirname 可以獲取一個文件所在的路徑,dirname的用處是:
輸出已經去除瞭尾部的”/”字符部分的名稱;如果名稱中不包含”/”,
則顯示”.”(表示當前目錄)。
下面是dirname的命令行說明:
從上面的描述可知道,直接從dirname返回的未必是絕對路徑,取決於提供給dirname的參數是否是絕對路徑。
所以下面這樣的代碼中SHELL_FOLDER
中不一定是絕對路徑
SHELL_FOLDER=$(dirname "$0")
需要用cd和pwd命令配合獲取腳本所在絕對路徑,正確的寫法是這樣的,
SHELL_FOLDER=$(cd "$(dirname "$0")";pwd)
如果你覺得上面的寫法比較麻煩,還有一個方式獲取腳本的絕對路徑,就是借助readlink命令,下面是readlink的命令行說明:
所以用readlink命令我們可以直接獲取$0參數的全路徑文件名,然後再用dirname獲取其所在的絕對路徑:
SHELL_FOLDER=$(dirname $(readlink -f "$0"))
參考:
http://my.oschina.net/leejun2005/blog/150662
http://blog.csdn.net/zz198808/article/details/9319479
到此這篇關於bash shell獲取當前腳本的絕對路徑(pwd/readlink)的文章就介紹到這瞭,更多相關bash shell獲取當前腳本絕對路徑內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Shell獲取當前正在執行腳本的絕對路徑
- Imagenet2012數據集下載、介紹(推薦)
- Python Map函數保姆級使用教程
- shell腳本配合zabbix實現tomcat的故障自愈功能
- python裝飾器原理源碼示例分析