Библиотека сайта rus-linux.net
Команда exit для начинающих
Оригинал: Linux exit Command Explained for Beginners (with Examples)
Автор: Himanshu Arora
Дата публикации: 4 сентября 2019 года
Перевод: А. Кривошей
Дата перевода: март 2020 г.
Если вы новичок в Linux, и ваша работа связана с работой в командной строке, то само собой разумеется, что вы должны проводить много времени в терминале. Как вы, вероятно, согласитесь, есть некоторые команды, которые мы обычно используем очень часто, например, ls, cp и rm. Однако есть некоторые другие, которые используются намного реже. В этом посте мы обсудим одну такую, менее часто используемую команду: Exit.
Обратите внимание, что все примеры и инструкции, упомянутые в этой статье, были протестированы в оболочке Bash, работающей в Ubuntu 18.04LTS.
Команда 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). В некоторых случаях это значение отображается на понятную человеку ошибку, предупреждение или уведомление.
Кроме того, как ясно из вышеприведенного вывода справочной команды, если значение N не указано явно, то этим значением считается состояние завершения последней выполненной команды.
Давайте рассмотрим простой пример: я переключил учетные записи пользователей и вошел в оболочку root:
Затем я вышел из оболочки с помощью команды exit. Кроме того, я использовал 8 в качестве значения состояния выхода.
Теперь в родительской оболочке (куда я вернулся) я использовал следующую команду для проверки состояния выхода:
$ echo $?
Вы можете видеть, что это то же значение состояния, которое было передано команде выхода в оболочке root. Таким образом, мы можем получить доступ к статусу, а затем делать все, что намечено.
Вот еще один пример, в котором я явно не передавал какой-либо статус выхода из оболочки root, но при запросе в родительской оболочке было возвращено состояние выхода последней команды, которая была выполнена в оболочке root:
Определение ловушек (trap)
Если вы хотите, вы также можете определить некоторые действия, которые вы хотите, чтобы система выполняла при выходе из оболочки. Например, вы можете удалить один или несколько файлов при выходе. Для этого вам нужно установить ловушку (trap), которую вы можете создать следующим образом:
trap "ENTER-COMMAND-HERE" EXIT
Какое бы действие вы ни предприняли при выходе из системы, вам нужно указать соответствующую команду в двойных кавычках выше. Например, я использовал следующую команду:
trap "rm hypotheticalfile.txt" EXIT
Дело в том, что в моей системе такого файла нет, поэтому после выполнения команды exit оболочка должна отобразить ошибку для нее. И вот что на самом деле произошло - см. ниже:
Таким образом, вы можете установить ловушки на выходе. Для получения дополнительной информации о ловушках выполните следующую команду:
help trap
Заключение
Когда дело доходит до команды exit, не требуется особой кривой обучения, особенно если вы новичок в командной строке. И вы, вероятно, согласитесь с этим. Так что просто попробуйте все, что мы здесь обсудили, и начните использовать команду exit (если вы этого еще не сделали).