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

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

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

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

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

  • Горячая запись EOF в файл, чтобы остановить любые процессы хвоста
  • Любой способ перезапустить машину Linux через SSH, если корневая файловая система не работает?
  • Почему я не должен использовать 'kill -9' / SIGKILL
  • Убийство кометы зомби
  • Убейте много экземпляров запущенного процесса с помощью одной команды
  • Патрулирование PIDs в kill не работает
  • Почему я не мог убить процесс NOHUP?
  • Как я могу вызвать CTRL ^ C из подсказки пароля?
  • 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
    Linux и Unix - лучшая ОС в мире.