Цей сценарій не лунає "після":
#!/bin/bash -e
echo "before"
echo "anything" | grep e # it would if I searched for 'y' instead
echo "after"
exit
Так само, якби я видалив -e
опцію в рядку shebang, але я хотів би зберегти її, щоб мій сценарій зупинився, якщо є помилка. Я не вважаю, що греп не знайшов відповідності як помилку. Як я можу запобігти йому так різко виходити?
var=$(complex command | grep complex_pattern)
який може бути нульовим (у такому випадку моя програма не повинна припинятися). Це просто закинутий сценарій, який змушує виникнути проблеми. Тут немає жодної метафізичної дупки в логіці, правда? ;)
-e
ви потурбуєтесь: настільки, що будь-яка проблема катастрофічна.