Команда Unix для выхода из командной строки

Как я могу выйти из командной строки из файла оболочки?

Файл оболочки содержит:

if(); then // some unix code here else // want to exit from cmd prompt or Kill current cmd prompt fi 

может кто знает @ это?

  • Как убить каскад в Linux?
  • Я хочу убить все процессы, которые являются результатом следующей команды
  • Как запустить telnet через SSH?
  • Все еще жив, еще жив после убийства -9 / SIGKILL
  • Патрулирование PIDs в kill не работает
  • Баш | неудачный цикл
  • Как убить все процессы с использованием данного GPU?
  • процесс убийства bash по вызову
  • 2 Solutions collect form web for “Команда Unix для выхода из командной строки”

    Как и Крис Даун , я собираюсь предположить, что вы используете GNU bash. Другие оболочки могут быть разными, но общая идея должна быть одинаковой.

    В bash переменная среды $$ содержит идентификатор процесса текущего процесса, а $PPID содержит идентификатор процесса родителя текущего процесса. Как показано на примере Chris, вы можете пойти еще дальше, но / proc является специфичным для Linux.

    Вы можете спросить пользователя, следует ли выйти с помощью конструкции, как показано ниже.

     echo "Do you want to exit? (type YES or NO, then Enter)" read answer if test "${answer}" = "YES"; then # insert process killing magic fi # we only get here if the user did not answer "YES" 

    Если он доступен, вы можете использовать dialog GNU, чтобы сделать вопрос немного красивее. В этом случае замените весь фрагмент выше следующим образом.

     if dialog --yesno "Do you want to exit?" 10 50; then # insert process killing magic fi # we only get here if the user did not answer "YES" 

    Числа 10 50 определяют размер диалогового окна (строки и столбцы, соответственно).

    process killing magic может быть чем-то простым, как kill $PPID .

    Я предполагаю, что вы имеете в виду, что хотите убить интерактивную оболочку, из которой был взломан скрипт. Я также предполагаю, что эта оболочка – bash .

    Если вы используете сценарий в этой оболочке, просто используйте exit . В противном случае отправьте SIGABRT (или другой сигнал, который вызовет выход bash) в родительский pid (интерактивная оболочка), используя что-то вроде этого:

     kill -ABRT "$PPID" 

    Или, в оболочках без $PPID (это зависит от Linux):

     read -r _ _ _ ppid _ < "/proc/$$/stat" kill -ABRT "$ppid" 
    Interesting Posts

    Как найти название справочной страницы?

    Частичное свободное пространство для ручной установки

    Как удалить JDK 7 и установить JDK 8 в Linux Mint?

    nginx выходит из строя со следующей ошибкой: nginx: perl_parse () не удалось: 2

    bash ждет процесса в подстановке процесса, даже если команда недействительна

    Возможно ли переустановить Debian заново и сохранить всю разрез и данные из существующей установки?

    CUPS libusbx-devel требуется ошибка при попытке создать чашки-1.7.1 из источника

    Python 3.4.3 не удалось создать модули _ssl и _hashlib в Debian Strech

    Как избежать / usr / bin / env помечается в журналах systemd как исполняемый файл

    Отложить на основе получателя с exim

    Откуда берется команда «экспорт»?

    Что такое запрос IGMP?

    Сколько уровней таблицы страниц использует ядро ​​Linux? 4 или 5?

    Контрольная подсветка как пользователь (без xbacklight)

    Как включить автоматический вход в TTY при использовании программного обеспечения, такого как tmux?

    Linux и Unix - лучшая ОС в мире.