今、ディレクトリにstuffが含まれているかどうかを確認するステートメントを持つbashスクリプトを書いています。Bash IF終了コードのリダイレクトエラー
は今のところ、コードはフォルダが実際に空になったとき、私はLSからの誤差を抑えることがしたい、しかし
if [ "$(ls -A $APPLICATIONS)" ]; then
do something
else
do something else
fi
です。通常、「No such file or directory」と表示されますが、そのファイルを/ dev/nullにリダイレクトします。
(基本的に終了コード1を引き起こす)私は私が望んでいたようには/ dev/nullにすべてをリダイレクトし
if [ "$(ls -A $APPLICATIONS &> /dev/null)" ]; then
やってみましたが、それも見つからないように、ディレクトリになります。
これを行う正しい方法は何でしょうか?
空のディレクトリでエラーが発生することはありません。ディレクトリ自体が存在しない場合にのみエラーが発生し、空でない場合はエラーが発生します。 – Barmar
'$ APPLICATIONS'にワイルドカードが含まれていない限り、ディレクトリ名ではなく '/ path/to/directory/*' – Barmar
@Barmar問題のもう一つの側面は、ディレクトリが想定されていた場所が自分の問題であるということです。 * facepalm * –