2015-06-18 2 views
0

Я хочу вернуть коды, такие как 0-success,4-warning, 8-failure. Оболочка имеет только два кода возврата i.e 0 и 1. Возможно ли иметь надстандартный код? Для успеха мне нужно 0 и для отказа мне нужно 8.Пользовательские коды возврата в unix

+2

Shell не дал только два кода возврата? Попробуйте 'bash -c 'exit 123' || echo $? 'в оболочке и обратите внимание, что код статуса 123 возвращается. – Cyrbil

+2

Я голосую, чтобы закрыть этот вопрос как вне темы, потому что вопрос основан на ложном предположении. – chepner

+0

если [$? -eq 0]; then echo -e "Файл параметров успешно загружен \ n код возврата = $? \ n" else echo -e "Файл параметров не загружен \ n код возврата = $? \ n" exit 8 fi Я получаю код возврата как 1 incase of failure –

ответ

2

Вы можете вернуть любое 8-битное значение, но только 0 означает успех, любое другое значение считается сбоем. В случае неудачи, само значение не имеет предопределенного значения, вы можете выбрать любую семантику, которую хотите.

0

Функции в сценарии и сам сценарий возвращают статус выхода . Последняя команда, выполняемая в функции или скрипте , определяет статус выхода. Внутри скрипта команда exit nnn может использовать для доставки статуса выхода nnn в оболочку (nnn должно быть целым числом в диапазоне 0 - 255). (source)

Кроме того, большинство языков программирования позволяют вам вернуть код состояния 8 бит.

В оболочке вы можете получить последний код состояния с переменной $?. И вы можете отправить один либо с помощью exit X или return X где -1<X<256

0

Вы можете использовать любой 8-битный код завершения в сценарий оболочки. Только 0 считается успехом, все остальные - неудача.

Смежные вопросы