Команда exit с примерами в Linux
Если вы новичок в Linux, и ваша работа связана с выполнением задач через командную строку, то само собой разумеется, что вы проводите много времени в окне терминала. Есть команды, которые мы используем очень часто, такие как ls
, cp
и rm
. Однако есть и другие, которые используются сравнительно реже. В этом учебнике мы рассмотрим одну из таких, менее часто используемых команд — Exit
.
Обратите внимание, что все примеры и инструкции, упомянутые в этой статье, были протестированы на оболочке Bash, запущенной на Ubuntu 22.04.
Команда exit в Linux
Команда exit позволяет выйти из оболочки, в которой она запущена.
Если окно вашей оболочки имеет несколько вкладок, то эта команда выходит из той вкладки, в которой она выполнена. Учитывая, что это встроенная команда, вполне вероятно, что вы не найдете специальной man-страницы для 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
в корневой оболочке. Таким образом, мы можем получить доступ к статусу.
Ну, вот еще один пример, в котором я не передавал никакого статуса выхода из корневой оболочки, но при запросе в родительской оболочке, был возвращен статус выхода последней команды, которая была выполнена в корневой оболочке:
Определение ловушек
Если вы хотите, вы также можете определить некоторые действия, которые система должна предпринять при выходе из оболочки. Например, вы можете захотеть удалить один или несколько файлов при выходе. Для этого нужно установить ловушку, что можно сделать следующим образом:
trap "ENTER-COMMAND-HERE" EXIT
Итак, какое бы действие вы ни хотели, чтобы система выполнила при выходе, вам нужно указать соответствующую команду в двойных кавычках выше. Например, я использовал следующую команду:
trap "rm hypotheticalfile.txt" EXIT
Дело в том, что в моей системе такого файла не существует, поэтому после выполнения команды exit оболочка должна выдать ошибку. Что, собственно, и произошло – см. ниже:
Таким образом, вы можете установить ловушки при выходе. Для получения дополнительной информации о ловушках выполните следующую команду:
help trap
Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.
Вдохновлен www.howtoforge.com
Комментарии (0)