91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2021-09-10 13:24:46 來源:億速云 閱讀:132 作者:小新 欄目:開發技術

這篇文章主要介紹了Shell如何獲取當前正在執行腳本的絕對路徑,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

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如何獲取當前正在執行腳本的絕對路徑”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

富川| 通渭县| 虹口区| 衢州市| 石首市| 新蔡县| 佳木斯市| 镇康县| 开封县| 杭锦旗| 克山县| 安龙县| 石狮市| 昌都县| 扬中市| 岑溪市| 石台县| 龙岩市| 乐都县| 苏尼特左旗| 营山县| 兰州市| 新密市| 东乡| 沙洋县| 桂林市| 庐江县| 建始县| 忻城县| 嘉善县| 页游| 吉隆县| 汝阳县| 辽宁省| 晋城| 江安县| 景德镇市| 垦利县| 罗甸县| 涟源市| 交城县|