濮阳杆衣贸易有限公司

主頁 > 知識庫 > Shell獲取當(dāng)前正在執(zhí)行腳本的絕對路徑

Shell獲取當(dāng)前正在執(zhí)行腳本的絕對路徑

熱門標(biāo)簽:地圖標(biāo)注審核周期 如何申請400的電話呀 黑暗之魂3地圖標(biāo)注 電商外呼系統(tǒng)排名 合肥電銷外呼系統(tǒng)供應(yīng)商 沈陽ai電銷智能機器人 電話機器人對家居行業(yè)幫助大嗎 AI智能電銷機器人壞處 蘭州電銷機器人加盟

1. pwd命令

我們看看使用pwd命令能否獲取當(dāng)前正在執(zhí)行腳本的絕對路徑。該命令的作用是“print name of current/working directory”,真實含義是當(dāng)前工作目錄,并不是正在執(zhí)行腳本的目錄。

xiaosi@Qunar:~/company/sh$ cat pwd.sh
echo `pwd`
xiaosi@Qunar:~/company/sh$ sh pwd.sh
/home/xiaosi/company/sh
xiaosi@Qunar:~/company/sh$ cd ..
xiaosi@Qunar:~/company$ sh sh/pwd.sh 
/home/xiaosi/company

pwd.sh腳本中只有一句:echo `pwd`。通過在不同路徑下運行腳本,sh pwd.sh得到/home/xiaosi/company/sh,然而sh sh/pwd.sh 得到/home/xiaosi/company,所以說pwd命令并不能得到正在執(zhí)行腳本的目錄。

2. $0

$0是Bash環(huán)境下的特殊變量,其真實含義是:Expands to the name of the shell or shell script. This is set at shell initialization.  If bash is invoked with a file of commands, $0 is set to the name of that file. If bash is started with the -c option, then $0 is set to the first argument after the string to be executed, if one is present. Otherwise, it is set to the file name used to invoke bash, as given by argument zero。

$0值與調(diào)用的方式有關(guān):

(1)使用一個文件調(diào)用bash,那$0的值是文件的名字

xiaosi@Qunar:~/company/sh$ cat pwd.sh 
echo $0
xiaosi@Qunar:~/company/sh$ sh pwd.sh 
pwd.sh

(2)使用-c選項啟動bash,真正執(zhí)行的命令會從一個字符串中讀取,字符串后面如果還有別的參數(shù)的話,使用從$0開始的特殊變量引用(跟路徑無關(guān)了)

(3)除此以外,$0會被設(shè)置成調(diào)用bash的那個文件的名字(沒說是絕對路徑)

3. 正解

basepath=$(cd `dirname $0`; pwd)

dirname $0,取得當(dāng)前執(zhí)行的腳本文件的父目錄

cd `dirname $0`,進入這個目錄(切換當(dāng)前工作目錄)

pwd,顯示當(dāng)前工作目錄(cd執(zhí)行后的)

到此這篇關(guān)于Shell獲取當(dāng)前正在執(zhí)行腳本的絕對路徑的文章就介紹到這了,更多相關(guān)Shell獲取腳本絕對路徑內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Shell中獲取腳本所在目錄絕對路徑的方法

標(biāo)簽:河池 黔南 黔南 淮南 隴南 河北 常州 通遼

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Shell獲取當(dāng)前正在執(zhí)行腳本的絕對路徑》,本文關(guān)鍵詞  Shell,獲取,當(dāng)前,正在,執(zhí)行,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Shell獲取當(dāng)前正在執(zhí)行腳本的絕對路徑》相關(guān)的同類信息!
  • 本頁收集關(guān)于Shell獲取當(dāng)前正在執(zhí)行腳本的絕對路徑的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    朝阳市| 高唐县| 云南省| 台东县| 黔南| 米林县| 梧州市| 隆尧县| 琼海市| 鱼台县| 中阳县| 龙州县| 台南县| 铁力市| 上杭县| 三亚市| 长治县| 临泉县| 常山县| 阳新县| 左云县| 图片| 深水埗区| 通山县| 鄂州市| 含山县| 巴林左旗| 株洲市| 巴塘县| 颍上县| 通化市| 巴楚县| 汉川市| 曲周县| 日喀则市| 阳春市| 洛宁县| 昌黎县| 奉贤区| 周宁县| 大丰市|