linux 下 `dirname $0`
阿新 • • 發佈:2018-12-10
【`】,學名叫“倒引號”, 如果被“倒引號”括起來, 表示裡面需要執行的是命令。 比如 `dirname $0`, 就表示需要執行 dirname $0 這個命令 【“”】 , 被雙引號括起來的內容, 裡面 出現 $ (美元號: 表示取變數名) `(倒引號: 表示執行命令) \(轉義號: 表示轉義), 其餘的才表示字串。 【’‘】, 被單引號括起來的內容, 裡面所有的都表示串, 包括上面所說的 三個特殊字元。 在命令列狀態下單純執行 $ cd `dirname $0` 是毫無意義的。因為他返回當前路徑的"."。
這個命令寫在指令碼檔案裡才有作用,他返回這個指令碼檔案放置的目錄,並可以根據這個目錄來定位所要執行程式的相對位置(絕對位置除外)。
$0:當前Shell程式的檔名 dirname $0,獲取當前Shell程式的路徑 cd `dirname $0`,進入當前Shell程式的目錄
在/home/admin/test/下新建test.sh內容如下:
- cd `dirname $0`
- echo `pwd`
然後返回到/home/admin/執行
- sh test/test.sh
執行結果:
- /home/admin/test
這樣就可以知道一些和指令碼一起部署的檔案的位置了,只要知道相對位置就可以根據這個目錄來定位,而可以不用關心絕對位置。這樣指令碼的可移植性就提高了,扔到任何一臺伺服器,(如果是部署指令碼)都可以執行。