このスクリプトは「後」をエコーしません。
#!/bin/bash -e
echo "before"
echo "anything" | grep e # it would if I searched for 'y' instead
echo "after"
exit
また-e
、shebang行のオプションを削除した場合も同様ですが、エラーが発生した場合にスクリプトが停止するように、それを保持したいです。grepが一致しないことをエラーと見なすことはありません。突然終了するのを防ぐにはどうすればよいですか?
var=$(complex command | grep complex_pattern)
がnull である可能性がある(この場合、私のプログラムは終了すべきではない)を分析しているので、どちらの方法でもかまいません。これは、問題を発生させる要約されたスクリプトです。ここには論理に形而上学的なブラックホールはありませんか?;)
-e
あなたが気にすることを前提としているように思われます:どんな問題でも壊滅的であるように。