天天看點

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

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

繼續閱讀