必要なヘルプ-GNU / LINUX bashでのシェルスクリプトのコンテキストで:
私はいつも使用しますset -e
。多くの場合、パターンが見つからないことを示す終了ステータスがあるgrep
場合、スクリプトの実行を終了させたいとは思わないでしょう。grep
1
この問題を解決しようとしたのは次のとおりです。
(Iを試してみてください)
の場合set +o pipefail
と同様なものとgrepの呼び出しgrep 'p' | wc -l
将来のメンテナが有効になるまで、私は目的の動作を取得しますpipefail
。また、有効にするのpipefail
が好きなので、これはうまくいきません。
(IIしてみてください)
を使用しsed
、またはawk
その後、およびのみパターンに一致する行を印刷wc
マッチしたパターンのための試験に適合ライン。sed
to を使用することgrep
は私の本当の問題の回避策のように思えるので、私はこのオプションが好きではありません。
(トライIII)
これは私の一番好きではありません-次のようなものです:set +e; grep 'p'; set-e
どんな洞察/イディオムも最も高く評価されるでしょう-ありがとう。