Если вы будете вызывать скрипт с помощью source
, вы можете использовать return <x>
где <x>
будет статус завершения скрипта (используйте ненулевое значение для ошибки или false). Но если вы вызываете исполняемый скрипт (т. Е. Непосредственно с его именем файла), оператор return приведет к жалобе (сообщение об ошибке «return: может только« вернуться »из функции или скрипта с источником»).
Если exit <x>
вместо этого используется, когда сценарий вызывается source
, это приведет к выходу из оболочки, которая запустила сценарий, но исполняемый сценарий просто завершится, как и ожидалось.
Чтобы обработать любой случай в одном и том же сценарии, вы можете использовать
return <x> 2> /dev/null || exit <x>
Это будет обрабатывать любой вызов может быть подходящим. Это предполагает, что вы будете использовать это утверждение на верхнем уровне скрипта. Я бы посоветовал не выходить из скрипта непосредственно из функции.
Примечание: <x>
предполагается, что это просто число.
1
последовательно. Если сценарий предназначен для запуска другим сценарием, вы можете определить свой собственный набор кодов состояния с определенным значением. Например,1
== тесты не пройдены,2
== компиляция не удалась. Если сценарий является частью чего-то другого, вам может потребоваться настроить коды в соответствии с используемыми там практиками. Например, когда часть набора тестов запускается automake, код77
используется для обозначения пропущенного теста.