Есть несколько способов остановиться или продолжить после неудачной команды.
Вот несколько примеров:
Включите команду, как будто условие возможно, лучший способ
$ if echo foo; then echo bar; fi
foo
bar
Проверьте код выхода , чтобы узнать результат данной команды (стандарт - вернуть 0 код выхода в случае успеха и код переменной от 1 до 255 в случае ошибки), но, как сказал @Charles Duffy,
это антипаттерн, потому что он создает сложность, которой не было бы, если бы вам вообще не требовалось регистрировать состояние выхода.
Подробнее здесь
$ echo foo
$ echo $?
0
Так что вы можете сделать что-то вроде:
$ echo foo
foo
$ if [[ $? == 0 ]]; then echo bar; fi
bar
Использование код выхода и арифметический режим c
Проверка на успех
$ if ! (($?)); then echo bar; fi
bar
Проверка на сбой
$ if (($?)); then echo bar; fi
Использование &&
||
$ echo foo && echo bar || echo baz
foo
bar
Говоря о вашем вопросе, упростите и сделайте что-то вроде этого:
if curl -o "$TEMPFILE" "$URL"; then
echo SUCCESS
echo "Here's the logic of your 4 and 5 line or whatever you want."
else
echo FAIL
echo "Maybe you should exit with an error code, like this "
exit 1
fi
exit 0