set -e и короткие тесты

Когда я был новичком в написании сценариев оболочки, я использовал множество коротких тестов вместо операторов if , например false && true .

Позже я научился использовать set -e и обнаружил, что мои скрипты по какой-то причине умирают, и они будут работать, если я заменю короткие тесты с полными операторами if . Теперь время прошло, и я все еще использую только полные операторы if .

Самое интересное, что если я открываю интерактивную оболочку и делаю следующее:

set -e
false && true
echo $?

она возвращает 1, но оболочка не умирает!

Я вижу, что потратил слишком много строк кода. Кто угодно мог бы объяснить мне, как безопасно использовать set -e с короткими тестами, например. без смерти сценария?

19
задан Teresa e Junior 3 August 2011 в 17:05
поделиться