Má abordagem
q) kill ksh
Boa abordagem
Na sua shell principal, faça isso
alias yourscript='exec yourscript'
para que o script assuma o shell e saia do shell ao terminar.
Estou escrevendo um script de shell. Eu usei a declaração case
em relação a certas coisas. Eu tenho uma opção / caso como q
que deve sair do terminal.
case "$i" in
1) some script. ;;
q) break && exit;;
mas está apenas saindo do script, não do terminal.
Alguém pode me ajudar com relação a isso? Observe que o shell é ksh
.
q) kill ksh
Na sua shell principal, faça isso
alias yourscript='exec yourscript'
para que o script assuma o shell e saia do shell ao terminar.
ksh
suporta $PPID
. Esta variável identifica o número do processo do pai do ksh
shell.
Portanto, se o seu script for executado a partir de qualquer shell (e é interpretado por ksh
devido à sua shebang), então isso deve fazer com que este shell saia:
kill -s SIGHUP $PPID
Note que ele também mata o script, a menos que o script tenha sido invocado com nohup
ou algum truque similar tenha sido usado.
Em seguida, o emulador de terminal deve sair automaticamente, se não estiver configurado de outra forma (por exemplo, o PuTTY tem a opção "Fechar janela ao sair" que pode ser definida como "Nunca").