linux 下 `dirname $0`

【`】,學名叫“倒引號”, 如果被“倒引號”括起來,  表示裏面需要執行的是命令。
比如 `dirname $0`,  就表示需要執行   dirname $0  這個命令

【“”】 , 被雙引號括起來的內容, 裏面 出現  $ (美元號: 表示取變量名)  `(倒引號: 表示執行命令)   \(轉義號: 表示轉義),   其餘的才表示字符串。
【’‘】,  被單引號括起來的內容, 裏面所有的都表示串, 包括上面所說的  三個特殊字符。

在命令行狀態下單純執行 $ cd `dirname $0` 是毫無意義的。因爲他返回當前路徑的"."。

這個命令寫在腳本文件裏纔有作用,他返回這個腳本文件放置的目錄,並可以根據這個目錄來定位所要運行程序的相對位置(絕對位置除外)。

$0:當前Shell程序的文件名
dirname $0,獲取當前Shell程序的路徑
cd `dirname $0`,進入當前Shell程序的目錄

在/home/admin/test/下新建test.sh內容如下:

  1. cd `dirname $0`
  2. echo `pwd`

然後返回到/home/admin/執行

  1. sh test/test.sh

運行結果:

  1. /home/admin/test

這樣就可以知道一些和腳本一起部署的文件的位置了,只要知道相對位置就可以根據這個目錄來定位,而可以不用關心絕對位置。這樣腳本的可移植性就提高了,扔到任何一臺服務器,(如果是部署腳本)都可以執行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章