呼び出し時にfind
ファイルが見つからない場合は、まだコード0で終了します。ファイルが見つからないときに失敗を示す終了コードを返す方法はありますか?
ベストアンサー1
grep
NULで区切られた行(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 '^' | ...
この場合、^
代わりに使用する方が.
安全です。出力に連続した改行文字がある場合は^
無視されますが、.
そうではありません。