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