
我試圖理解一個已經寫好的 Shell 腳本,並且遇到了以下行。
while [ -h "$SOURCE" ];
我需要知道的是-H
至於附加資訊:
$SOURCE = ./my-script.sh
答案1
不是關鍵字-h
的選項while
,而是[
(and test
) 實用程式的選項。該選項的含義在 shell 的test
、或手冊中進行了描述[
(因為這些通常是內建實用程式),請參閱man test
。
它是標準test
和 的選項[
以及 POSIX 標準描述它像這樣:
-h pathname
如果
pathname
解析為符號連結的現有目錄條目,則為 true。如果pathname
無法解析,或pathname
解析為不是符號連結的檔案的現有目錄條目,則傳回 False。如果 的最後一個組成部分pathname
是符號鏈接,則不遵循該符號鏈接。
簡而言之,它評估為真的如果給定的路徑名是符號鏈接,那麼循環while
將一直循環,直到變數中的值SOURCE
不再引用符號連結。