bash -eオプションでは、エラーの後に実行を停止し、grepコマンドは探しているパターンが見つからない場合にゼロ以外のステータスを返します。 は、私は私が$を使用する場合は、ifステートメント内シェルで-eオプションを指定してgrepを使用する方法
#/bin/bash -e
if [[ `grep str /usr/lib/file.txt` -eq 0 ]]
//do something
fi
のようなものをグレップを使用したいですか?最後のコマンドのステートメントを取得するには、grepがゼロ以外のステータスを返すので、最後のコマンドの後で実行が停止します。 があり、これを実現するためにいくつかの方法がその場でそれを行うだけで、それを
A **がチェック終了** - のいずれかであるコマンドのつまり、終了ステータス'if '条件や' && 'や' || 'のような短絡操作の一部は' set -e'によって無視されます - もしそうでなければ 'if'を使うことはできませんそれを有効にした状態での声明! –
あなたの質問は、「最後のコマンドの終了ステータス」を得るために '$?'を使用しても、あなたの質問のコードは '$? 'をまったく使っていないと言います。表示しているコードが実際に問題を表しているかどうかを確認することができます。 –
...それは 'set -e'を使う決断を下す前に、[BashFAQ#105](http://mywiki.wooledge.org/BashFAQ/105)を読み、その警告を理解することを検討すべきです。この機能はかなり議論の余地があり、驚くべきコーナーケースにパッチを当てようとする互換性のない変更の長い歴史を持っています。 –