Если вы новичок в Linux и ваша работа связана с выполнением задач через командную строку, то, разумеется, вы, наверное, проводите много времени в окне терминала. Как вы, вероятно, согласитесь, есть некоторые команды, которые мы используем очень часто, такие как ls, cp и rm. Однако есть и другие, которые используются сравнительно реже. В этом уроке мы рассмотрим одну из таких, менее часто используемых команд: Exit.
Обратите внимание, что все примеры и инструкции, упомянутые в этой статье, были протестированы в оболочке Bash, работающей в Ubuntu 22.04.
Команда exit в Linux
Команда exit позволяет выйти из оболочки, в которой она запущена.

Если окно вашей оболочки имеет несколько вкладок, то эта команда закрывает вкладку, в которой она была выполнена. Учитывая, что это встроенная команда, скорее всего, вы не найдете отдельной справочной страницы для exit. Чтобы получить доступ к официальной документации, выполните следующую команду:
help exit
В моей системе вышеупомянутая команда выдала следующий результат:
exit: exit [n] Exit the shell. Exits the shell with a status of N. If N is omitted, the exit status is that of the last command executed.
Теперь некоторые из вас могут спросить, зачем (или, вернее, когда) требуется N. Ну, это значение — которое, по сути, является кодом завершения — используется в основном, когда команда запускается из скрипта (bash-скрипта). В некоторых случаях это значение сопоставляется с понятным для человека сообщением об ошибке, предупреждении или уведомлении.
Кроме того, как ясно из вывода команды help выше, если значение N явно не указано, в качестве этого значения принимается код завершения последней выполненной команды.
Рассмотрим простой пример: я переключился на другую учетную запись и вошел в оболочку root:

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

Теперь в родительской оболочке (куда я вернулся) я использовал следующую команду, чтобы проверить статус завершения:
echo $?

Как видите, это то же значение статуса, которое было передано команде exit в оболочке root. Таким образом, мы можем получить доступ к статусу и затем выполнить все необходимое.
Теперь вот ещё один пример, в котором я явно не передавал никакого статуса завершения из корневой оболочки, но при запросе в родительской оболочке был возвращён статус завершения последней команды, запущенной в корневой оболочке:

Определение трапов
При желании вы также можете определить некоторые действия, которые система должна выполнить при завершении работы оболочки. Например, вы можете захотеть удалить один или несколько файлов при завершении работы. Для этого необходимо установить трап, что можно сделать следующим образом:
trap "ENTER-COMMAND-HERE" EXIT
Таким образом, какое бы действие вы ни хотели, чтобы система выполняла при выходе, вам нужно указать соответствующую команду в двойных кавычках выше. Например, я использовал следующую команду:
trap "rm hypotheticalfile.txt" EXIT
Дело в том, что такого файла в моей системе не существует, поэтому после выполнения команды exit оболочка должна вывести сообщение об ошибке. И именно это и произошло — смотрите ниже:

Таким образом, вы можете устанавливать ловушки при выходе. Для получения дополнительной информации о ловушках выполните следующую команду:
help trap
Заключение
Команда exit не требует больших усилий для освоения, особенно если вы новичок в командной строке. И вы, вероятно, сейчас с этим согласитесь. Так что просто быстро попробуйте то, что мы здесь обсудили, и начните использовать команду exit (если вы еще этого не делаете). В случае каких-либо сомнений или вопросов, оставьте комментарий ниже. Вы уже знаете команду tee? Если нет, посмотрите, для чего она используется.