Я хотел бы вернуть код выхода из BASH script, который вызывается внутри другого script, но также может быть вызван напрямую. Он примерно выглядит следующим образом:
#!/bin/bash
dq2-get $1
if [ $? -ne 0 ]; then
echo "ERROR: ..."
# EXIT HERE
fi
# extract, do some stuff
# ...
Теперь в строке EXIT HERE
script должен выйти и вернуть код выхода 1. Проблема в том, что
- Я не могу использовать
return
, потому что, когда я забуду исходный script вместо его вызова, return не выйдет, а остальная часть script будет выполнена и запутаться. - Я не могу использовать
exit
, потому что это закрывает оболочку. - Я не могу использовать хороший трюк
kill -SIGINT $$
, потому что это не позволяет вернуть код выхода.
Есть ли жизнеспособная альтернатива, которую я упустил?