Como escrever um script em ksh para sair do terminal?

0

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 .

    
por Rohan Rana 03.07.2017 / 13:19

2 respostas

1

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.

    
por 03.07.2017 / 15:33
0

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").

    
por 03.07.2017 / 17:04

Tags