Если вы пишете Баш-скрипт или даже просто выполняя одну из них, важно знать, как выйти из Баш-скрипт .
Существуют комбинации клавиш, которые могут выйти из сценария Bash во время его выполнения в вашем терминале, и есть способы выхода из сценария Bash с использованием различных кодов выхода. Мы покажем вам примеры обоих.
В этом руководстве вы узнаете, как выйти из скрипта Bash либо из скрипта, либо из командная строка пока скрипт выполняется на Linux-система .
В этом уроке вы узнаете:
Как выйти из скрипта Bash в терминале
Если вы выполняете сценарий Bash в своем терминале и вам нужно остановить его до того, как он завершится сам по себе, вы можете использовать команду Ctrl + С комбинация на клавиатуре. А ^ С на вашем терминале появится символ, указывающий на прерывание клавиатуры.
$ ./test.sh. ^ С.
Это посылает ПОДПИСЬ сигнал прерывания для сценария, и в 99% случаев это должно немедленно завершить работу сценария, который вы выполняете.
Как выйти из ubuntu
Единственное исключение, если ловушка был настроен, чтобы поймать ПОДПИСЬ сигнал. Это имеет место в сценариях, которым необходимо завершить определенную задачу, даже если пользователю срочно нужно остановить сценарий досрочно. В этом случае вам, вероятно, следует просто дождаться завершения скрипта.
ПРИМЕЧАНИЕ
Подробнее о ловушках Bash читайте в другом нашем туториале. Как изменить поведение скриптов на сигналах с помощью bash-ловушек .
В худшем случае вы можете вручную убить скрипт с помощью убийство команда. Смотрите наш другой учебник по Как убить запущенный процесс в Linux .
Как выйти из скрипта Bash внутри скрипта
Естественно, сценарий Bash завершается всякий раз, когда он достигает конца сценария. Но иногда сценарий не предназначен для выполнения до конца, например, в случае с условным оператором.
То выход Команда может быть записана в сценарий Bash, чтобы вручную завершить ее в определенный момент. Код выхода из 0 обычно указывает на то, что скрипт завершил работу без каких-либо ошибок. Код выхода из 1 или выше обычно указывает на то, что при выходе произошла ошибка. Однако разработчик должен решить, что он хочет, чтобы эти коды означали в его скрипте.
Давайте посмотрим на некоторые примеры.
-
Вот базовый скрипт, который будет только выход когда первый пункт если утверждение верно.
#!/bin/bash while true; сделать эхо «введите текст» прочитать текст, если [[ -n $text ]]; затем эхо «вы ввели: $текст» выход 0. else echo «Вы ничего не вводили!» готово
Во-первых, мы предлагаем пользователю ввести текст. Затем наш если Оператор проверяет, содержит ли строка текст или она пуста. Если он содержит текст, скрипт эхо введенная строка, а затем выход сценарий. Если пользователь ничего не вводит, пока цикл будет продолжать выполняться и продолжать предлагать их до тех пор, пока не будет введена строка. Вот как это выглядит, когда мы запускаем скрипт:
Vi / Vim: основы (как выйти из vi, как редактировать текст в vi, как работать в vi)
$ ./test.sh введите текст. Привет. Вы ввели: привет.
Теперь мы можем выполнить следующую команду, чтобы увидеть, с каким кодом выхода завершился наш скрипт.
$ эхо $? 0.
#!/bin/bash user=$(whoami) if [ $user = root ]; затем эхо «Не выполнять скрипт от имени пользователя root» выход 1. fi # сделай что-нибудь. Эхо «Все готово. » выход 0
Давайте посмотрим, что произойдет, когда мы выполним скрипт с привилегиями root или без них.
$ ./test.sh Готово. $ эхо $? 0 $ sudo ./test.sh Не выполнять скрипт от имени пользователя root. $ эхо $? 1.
Заключительные мысли
В этом руководстве вы узнали, как выйти из сценария Bash в системной памяти Linux. Это включало выход из сценария во время его выполнения в терминале и выход из сценария Bash, который вы пишете. Вы также видели, как использовать коды выхода, которые позволяют нам указать, завершился ли сценарий успешно или из-за ошибки и т. д.
Подпишитесь на новостную рассылку Linux Career Newsletter, чтобы получать последние новости, информацию о вакансиях, советы по карьере и рекомендации по настройке.
LinuxConfig ищет технического писателя (писателей), ориентированного на технологии GNU/Linux и FLOSS. В ваших статьях будут представлены различные руководства по настройке GNU/Linux и технологии FLOSS, используемые в сочетании с операционной системой GNU/Linux.
Ожидается, что при написании ваших статей вы сможете идти в ногу с технологическим прогрессом в вышеупомянутой технической области знаний. Вы будете работать самостоятельно и сможете выпускать не менее 2 технических статей в месяц.
- 04/03/2022
- БашПрограммированиеСценарииРазработка
Как распечатать переменные среды в Linux
Переменные окружения на Linux-система содержат изменяющиеся значения, на которые в основном ссылаются сценарии и системные программы. Переменные среды отличаются от переменные оболочки, потому что к ним может получить доступ любой пользователь или.
Команды Linux: 20 самых важных команд, которые вам нужно знать
Есть тысячи команды которые вы можете научиться использовать на Linux-система, но большинство пользователей будут выполнять одни и те же несколько команд снова и снова. Для пользователей, которые ищут способ начать работу, мы собрали 20 наиболее в.
Очистите имена файлов с помощью утилиты командной строки detox
Если вы потратили много времени на командная строка работать с файлами в линукс, то вы, вероятно, знаете о проблемах с именами файлов, которые содержат пробелы или любые другие странные символы. Может быть утомительно экранировать определенные име.
Источник: wowgold-seller.com
Как мгновенно выйти из Ubuntu через терминал
Существует несколько способов выхода из сеанса рабочего стола Ubuntu, но большинство из них настолько очевидны, что не нуждаются в руководстве, объясняющем их!
Однако вы можете не знать, как выйти из Ubuntu через терминал (или выйти из GNOME в любом дистрибутиве Linux, который его использует).
Черт возьми, я не знал этого до недавнего времени.
Чтобы выйти из терминала, откройте приложение Terminal и выполните следующую команду:
gnome-session-quit
После нажатия клавиши Enter появится диалог выхода из системы (стандартный графический интерфейс) с 30-секундным обратным отсчетом. Таймер дает вам время, чтобы сохранить все несохраненные работы, завершить все задачи и выйти из приложений чисто — чтобы убедиться, что вы безопасно вышли из вашей сессии пользователя Ubuntu правильным способом.
Но если вы торопитесь…
Чтобы выйти из Ubuntu из командной строки немедленно (т.е. сразу после нажатия клавиши Enter), откройте приложение Terminal и выполните ту же команду, но на этот раз добавьте в конец флаг —no-prompt, как показано ниже:
gnome-session-quit —no-prompt
Как только вы уберете палец с клавиши Enter, вы будете принудительно выведены из системы. Никаких «если», «но» и «может быть». Все несохраненные изменения, запущенные приложения, команды терминала или другие активные начинания будут уничтожены.
И вы вернетесь на экран входа в GDM.
Все просто, на самом деле!
Так почему же я пишу об этом пост?
Ну, я собирал некоторые компоненты GNOME для разработки, чтобы опробовать их (и сделать несколько скриншотов) для предстоящей статьи. Как только я закончил сборку, ни один из «очевидных» графических способов выхода из GNOME (например, меню состояния, ярлыки на экране приложений и т.д.) не сработал.
И да, я пытался терпеть ?.
Прочтите: Как установить Dropbox в Ubuntu Linux
Я обратился к Google, чтобы узнать «как выйти из GNOME из терминала». Я думал, что какой-нибудь богатый сниппет даст мне немедленный ответ.
Но этого не произошло.
Вместо этого Google выдал мне ссылки на (по общему признанию, полезные) руководства по «выходу из системы», в которых было описано (как мне показалось) шестнадцать различных способов выполнения одной и той же задачи, в то время как меня интересовал только этот конкретный.
Поэтому, чтобы помочь всем, кто окажется в подобной ситуации (хотя, возможно, только себе через 6 месяцев, когда я снова забуду), я решил написать краткое руководство, чтобы показать вам, как выйти из Ubuntu из командной строки, и… ну, вот и все!
Источник: linuxcool.net
Как вы можете выйти через терминал?
Есть ли команда терминала, которая выведет вас из сеанса рабочего стола и вернет вас к экрану входа?
TheXed 02 дек ’10 в 01:42 2010-12-02 01:42
2010-12-02 01:42
15 ответов
11.10 и выше
gnome-session-quit
11.04 и предыдущие версии
dbus-send —session —type=method_call —print-reply —dest=org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager.Logout uint32:1
(с помощью DoR, см. Его ответ «Перезагрузка без привилегий sudoer?» для большего дбус добра!)
или, альтернативно, вы можете использовать
gnome-session-save —force-logout
—force-logout в отличие от всего —logout не будет просить пользователя иметь дело с несохраненными документами и тд.
это самый простой способ? нет простой однострочной команды, как выход из sudo?? Я никогда не буду помнить все это.
Да, есть команда с именем logout, но она касается терминала. gnome-session-save — это программа, которая на самом деле выходит из gnome-session , который вы, конечно, можете убить, но это не квалифицируется как выход из системы.:-)
Также обратите внимание, что эти команды не требуют, чтобы вы были пользователем root.
Вы всегда можете добавить псевдоним в свою систему, если хотите использовать более короткую команду.
открыто ~/.bash_aliases с помощью текстового редактора или создайте его, если его там нет, и добавьте в него что-то вроде этого:
alias logout-gnome=»gnome-session-save —force-logout»
(.bashrc — это скрипт, который запускается каждый раз, когда запускается новый виртуальный терминал, вы должны настроить там все свои постоянные псевдонимы, см. также: Как создать постоянный «псевдоним»?)
Stefano Palazzo 02 дек ’10 в 01:48 2010-12-02 01:48
2010-12-02 01:48
Я установил рабочий стол помощника, и ни одно из меню не сработало, даже клавиши F не работали. Мне удалось получить xterm через просмотр с файловым менеджером.
Единственное, что сработало, было:
sudo pkill -u username
Dan 05 май ’12 в 22:27 2012-05-05 22:27
2012-05-05 22:27
11.10 и выше
Вот мое личное решение!
В терминале запустите:
gedit ~/.bash_aliases
alias log-out=»gnome-session-quit»
в файл! Теперь вам просто нужно выйти из системы!
Nick 02 мар ’12 в 23:46 2012-03-02 23:46
2012-03-02 23:46
Похоже gnome-session-save был переименован в gnome-session-quit за 11.10. Все остальное в основном ответе должно все еще работать с этим единственным изменением.
Mark Ferree 22 дек ’11 в 17:30 2011-12-22 17:30
2011-12-22 17:30
Для сеансов гномов, gnome-session-quit работает хорошо. По умолчанию он запрашивает подтверждение, а затем выходит из системы (т. Е. —logout аргумент предполагается, если не переопределен с —power-off явно). Вы также можете указать команде не запрашивать подтверждение при выходе из системы:
—no-prompt End the session without user interaction. This only works with —logout.
gnome-session-quit действует до 12.04.
Так как в OP не указан менеджер окон / рабочего стола, а gnome-session-quit может работать не со всеми возможностями, вот общий способ X-windows для возврата к экрану входа или выбору, который я использовал несколько раз последние несколько выпусков:
Из терминала (вызывается, по-разному, с помощью Alt-F2 + xterm, или Ctrl-T, или Crt-Alt-F1, или щелкая правой кнопкой мыши на рабочем столе в Nautilus и используя ярлык «открыть в терминале» и т. Д.) тип
Это обычно излишне для большинства ситуаций. Я склонен использовать его, когда у меня зависает процесс или когда мне нужно быстро выйти из системы. Когда я сделал это, Ubuntu вежливо вернул меня к экрану входа в систему, заново запустив X-windows.
Я еще не использовал power-off особенность gnome-session-quit , как я обычно использую shutdown -P now для этой цели.
belacqua 06 май ’12 в 00:25 2012-05-06 00:25
2012-05-06 00:25
В Xubuntu (или всякий раз, когда используется сеанс Xfce), вы можете выйти через терминал, используя
xfce4-session-logout —logout
Вы должны указать —logout или появится экран подтверждения выхода из системы. Это будет работать независимо от того, указали ли вы «Xubuntu session» или «Xfce session», когда вы вошли в систему с Lightdm , поскольку сеанс все еще управляется менеджером сеансов Xfce.
Кроме того, другой вариант также выйдет из системы:
xfce4-session-logout —fast
Если эта команда введена, сеанс не сохраняется, поэтому обычно лучше использовать xfce4-session-logout —logout ,
Возможность выхода из системы с помощью терминала будет очень полезна для вас, как и другие опции, такие как приостановка, которые доступны с xfce4-session-logout ,
Для получения дополнительной информации см. man xfce4-session-logout или страницы Ubuntu онлайн.
Источник: ask-ubuntu.ru