シェル スクリプトの "while" 条件の "-h" パラメータ

シェル スクリプトの "while" 条件の "-h" パラメータ

すでに記述されたシェル スクリプトを理解しようとしているときに、次の行に遭遇しました。

while [ -h "$SOURCE" ];

私が知りたいのは、-h

追加情報については:

$SOURCE = ./my-script.sh

答え1

は、キーワード-hのオプションではなく、 (および) ユーティリティwhileのオプションです。 オプションの意味は、シェルの 、または (これらは通常、組み込みユーティリティであるため) のマニュアルに記載されています。を参照してください。[testtest[man test

それは標準testおよびのオプション[、およびPOSIX標準それを説明するそのようです:

-h pathname

pathnameシンボリック リンクの既存のディレクトリ エントリに解決される場合は True です。pathname解決できない場合、またはpathnameシンボリック リンクではないファイルの既存のディレクトリ エントリに解決される場合は False です。 の最後のコンポーネントがシンボリック リンクである場合pathname、そのシンボリック リンクはたどられません。

つまり、それは次のように評価される。真実指定されたパス名がシンボリック リンクである場合、while変数の値がSOURCEシンボリック リンクを参照しなくなるまでループが実行されます。

関連情報