校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Shell獲取當前正在執行腳本的絕對路徑

Shell獲取當前正在執行腳本的絕對路徑

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

1. pwd命令

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

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命令并不能得到正在執行腳本的目錄。

2. $0

$0是Bash環境下的特殊變量,其真實含義是: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值與調用的方式有關:

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

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

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

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

3. 正解

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

dirname $0,取得當前執行的腳本文件的父目錄

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

pwd,顯示當前工作目錄(cd執行后的)

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

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

標簽:河池 黔南 黔南 淮南 隴南 河北 常州 通遼

巨人網絡通訊聲明:本文標題《Shell獲取當前正在執行腳本的絕對路徑》,本文關鍵詞  Shell,獲取,當前,正在,執行,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Shell獲取當前正在執行腳本的絕對路徑》相關的同類信息!
  • 本頁收集關于Shell獲取當前正在執行腳本的絕對路徑的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 博爱县| 涞源县| 霍山县| 玉屏| 乐昌市| 呼图壁县| 民乐县| 扎囊县| 竹山县| 通许县| 石景山区| 茌平县| 美姑县| 鹤庆县| 海城市| 宿州市| 马公市| 长沙市| 平塘县| 衡山县| 罗平县| 德江县| 清远市| 中方县| 正宁县| 岳池县| 大理市| 楚雄市| 阿鲁科尔沁旗| 盐津县| 科尔| 墨江| 高安市| 格尔木市| 顺平县| 仪陇县| 东兰县| 巴楚县| 平罗县| 介休市| 瑞丽市|