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