Bashスクリプトには次のコード部分があります。
for dir in $(find /etc/aaa -type d -maxdepth 1)
do
#my code
done
#my code
ディレクトリが存在しない場合は、/etc/aaa
いくつかのエラーでスクリプトを終了したいと思います。
forループを実行する前にディレクトリが存在するかどうかをテストできることを知っています。
/etc/aaa
しかし、ディレクトリが存在しない場合は終了する必要があり、それ以外の場合はスクリプトを続行させる他の方法(forループ内の短いメソッド)があるかどうかを知りたいです。
現在の場合、スクリプトはエラーを提供し、find: /etc/aaa: No such file or directory
forループの後に残りを続けます。
forループの終了状態も0です。
ベストアンサー1
次のことができます。
if dirs="$(find /etc/aaa -type dir -maxdepth 1 2> /dev/null)"; then
for dir in ${dirs}; do
# Your code
done
# Your code
else
# find failed, generate error
fi