何も見つからないときに検索が失敗するようにする

何も見つからないときに検索が失敗するようにする

呼び出し時にfindファイルが見つからない場合は、まだコード0で終了します。ファイルが見つからないときに失敗を示す終了コードを返す方法はありますか?

ベストアンサー1

grepNULで区切られた行(GNUなどgrep)の読み取りをサポートしている場合は、-zそれを使用して出力される項目があるかどうかをテストできますfind

find /some/path -print0 | grep -qz .

データを別のコマンドにパイプするには、オプションを削除してデータを変更せずにそのままにし、-q結果grepがない場合はエラーを報告できます。

find /some/path -print0 | grep -z . | ...

特に${PIPESTATUS[1]}終了ステータスはbashに保存する必要がありますgrep

findこれをサポートしていない場合は、grepなしで-print0使用し-z、ファイル名に改行が問題を引き起こさないことを願っています。

find ... | grep '^' | ...

この場合、^代わりに使用する方が.安全です。出力に連続した改行文字がある場合は^無視されますが、.そうではありません。

おすすめ記事