Плохой подход
q) kill ksh
Хороший подход
В вашей основной оболочке сделайте это
alias yourscript='exec yourscript'
таким образом, сценарий принимает оболочку и завершает ее.
Я пишу сценарий оболочки. Я использовал case
утверждение относительно определенных вещей. У меня есть вариант / случай, так как q
это должно выйти из терминала.
case "$i" in 1) some script. ;; q) break && exit;;
но это только выход из скрипта, а не терминала.
Может ли кто-нибудь помочь мне в этом? Обратите внимание на оболочку ksh
.
q) kill ksh
В вашей основной оболочке сделайте это
alias yourscript='exec yourscript'
таким образом, сценарий принимает оболочку и завершает ее.
ksh
поддерживает $PPID
. Эта переменная идентифицирует номер процесса родителя ksh
оболочки.
Так что, если ваш скрипт запускается из любой оболочки (и интерпретируется ksh
из-за своего шебанга), то это должно заставить эту оболочку завершиться:
kill -s SIGHUP $PPID
Обратите внимание, что это также убьет скрипт, если скрипт не был вызван nohup
или не был использован какой-то подобный трюк.
Затем ваш эмулятор терминала должен выйти автоматически, если не настроено иначе (например, PuTTY имеет опцию «Закрыть окно при выходе», которая может быть установлена на «Никогда»).