shell腳本“while”條件中的“-h”參數

shell腳本“while”條件中的“-h”參數

我試圖理解一個已經寫好的 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不再引用符號連結。

相關內容