シンボリックリンクが壊れているか存在しないことを確認してください。

シンボリックリンクが壊れているか存在しないことを確認してください。

ifファイルが有効なシンボリックリンクであることを確認するステートメントを作成してみてください(つまり、シンボリックリンクも存在することを意味します)。

私は試した:

[ -h "$1" -a ! -e "$1" ]

...しかしうまくいきません。ファイルが有効なシンボリックリンクでない場合、または単に存在しない場合は、コードを実行したいと思います。

答え1

の名前が$1​​有効なシンボリックリンクの場合、-eテストは真です。壊れたシンボリックリンクの場合、-eテストは失敗します。名前が$1まったく存在しない場合でもテストは失敗します。

したがって$1、シンボリックリンクが壊れているかどうかをテストするには、またはまったく存在しない場合は、使用するのに十分です。

if [ ! -e "$1" ]; then ...; fi

テストなしで実行するのが最善です。廃止 -a〜のように

if [ ! -e "$1" ] && [ -h "$1" ]; then ...; fi

$1既存のシンボリックリンクが壊れているかどうかをテストします。

有効なシンボリックリンクをテストしたいですか?

if [ -e "$1" ] && [ -h "$1" ]; then ...; fi

関連情報