Вбудована команда 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, незалежно від того, що відбувається в сценарії.