bash shell獲取當(dāng)前腳本的絕對(duì)路徑(pwd/readlink)
有時(shí)候,我們需要知道當(dāng)前執(zhí)行的輸出shell腳本的所在絕對(duì)路徑,可以用dirname實(shí)現(xiàn)。
我們知道 dirname 可以獲取一個(gè)文件所在的路徑,dirname的用處是:
輸出已經(jīng)去除了尾部的”/”字符部分的名稱;如果名稱中不包含”/”,
則顯示”.”(表示當(dāng)前目錄)。
下面是dirname的命令行說(shuō)明:
從上面的描述可知道,直接從dirname返回的未必是絕對(duì)路徑,取決于提供給dirname的參數(shù)是否是絕對(duì)路徑。
所以下面這樣的代碼中SHELL_FOLDER
中不一定是絕對(duì)路徑
SHELL_FOLDER=$(dirname "$0")
需要用cd和pwd命令配合獲取腳本所在絕對(duì)路徑,正確的寫法是這樣的,
SHELL_FOLDER=$(cd "$(dirname "$0")";pwd)
如果你覺(jué)得上面的寫法比較麻煩,還有一個(gè)方式獲取腳本的絕對(duì)路徑,就是借助readlink命令,下面是readlink的命令行說(shuō)明:
所以用readlink命令我們可以直接獲取$0參數(shù)的全路徑文件名,然后再用dirname獲取其所在的絕對(duì)路徑:
SHELL_FOLDER=$(dirname $(readlink -f "$0"))
參考:
http://my.oschina.net/leejun2005/blog/150662
http://blog.csdn.net/zz198808/article/details/9319479
到此這篇關(guān)于bash shell獲取當(dāng)前腳本的絕對(duì)路徑(pwd/readlink)的文章就介紹到這了,更多相關(guān)bash shell獲取當(dāng)前腳本絕對(duì)路徑內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux logrotate日志切割安裝配置說(shuō)明
這篇文章主要為大家介紹了Linux logrotate日志切割的安裝配置說(shuō)明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12Linux命令學(xué)習(xí)之原來(lái)最簡(jiǎn)單的ls命令這么復(fù)雜
ls命令應(yīng)該是我們最常用的命令之一了,但是我們可能容易忽略那些看起來(lái)最簡(jiǎn)單的東西。本文就來(lái)和大家詳細(xì)聊聊ls命令的使用,需要的可以了解一下2022-10-10linux下監(jiān)控網(wǎng)絡(luò)流量的腳本
在我們的日常工作當(dāng)中,監(jiān)控網(wǎng)絡(luò)要么使用iptarf,ifstat這些命令實(shí)現(xiàn)的,但是需要裝額外的RPM包。特別是iptarf裝起來(lái)麻煩2013-01-01