Вбудована команда exit
виходить з оболонки (з посилання Баша ):
exit [n]
Вийдіть з оболонки, повернувши статус n батьківському оболонці. Якщо n опущено, стан виходу є статус останньої виконаної команди. Будь-яка пастка на EXIT виконується до завершення оболонки.
Запуск до кінця файлу також закінчується, повертаючи код повернення останньої команди, тому так, фінал exit 0
зробить вихід сценарію успішним статусом незалежно від стану виходу попередніх команд. (Тобто, якщо припустити, що сценарій досягне фіналу exit
.) Наприкінці сценарію ви також можете використати true
або :
отримати вихідний нуль.
Звичайно, частіше ви будете використовувати exit
зсередини a, if
щоб закінчити сценарій посередині.
Вони повинні надрукувати 1 ( $?
містить код виходу, повернутий попередньою командою):
sh -c "false" ; echo $?
sh -c "false; exit" ; echo $?
Хоча це має надрукувати 0:
sh -c "false; exit 0" ; echo $?
Я не впевнений, чи exit
має сенс сценарій "невдалий" при виконанні має сенс, оскільки цілком можливо, що деякі команди, керовані сценарієм, відмовляються, але сам сценарій досягти успіху. Автор сценарію вирішує, що є успіхом, а що ні.
Також стандартний діапазон для кодів виходу становить 0..255. Коди вище 127 використовуються оболонкою для позначення процесу, закінченого сигналом, але їх можна повернути звичайним способом. wait
Системний виклик фактично повертає більш широке значення, з іншими , що містять битами стану , встановлених в операційній системі.
exit 0
, він вийде з кодом виходу 0, незалежно від того, що відбувається в сценарії.