Этот скрипт не повторяет "после":
#!/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)
которое может быть нулевым (в этом случае моя программа не должна завершаться). Это всего лишь сценарий, позволяющий решить проблему. Здесь нет никакой метафизической черной дыры в логике, верно? ;)
-e
что вы заботитесь: настолько, что любая проблема будет катастрофической.