Fechar / matar / ocultar única janela do Terminal no bash em 'processo concluído'

3

Eu tenho que configurar um script bash que será o autorun para todos os nossos usuários.

Não consigo definir as configurações do terminal para fechar em "processo concluído". Eu não posso 'KillAll' os terminais.

Alguém conhece uma abordagem? Eu acho que a solução PID (não pai pid) seria um bom caminho.

O sistema operacional usado é o MacOS Sierra.

test.sh

#!bin/bash
currentUser=$(whoami)
mkdir -p ~/Desktop/Pdrive
mount_smbfs //server/UserData/$currentUser ~/Desktop/Pdrive


#pid=$$
#kill $pid
#exit 0
#kill -15 $$
#disown
#kill -9 $(ps -p $(ps -p $PPID -o ppid=) -o ppid=)
#osascript -e 'tell application "Terminal.app" to quit'
#pkill -f test.sh
exit
    
por Sevi S. 16.03.2017 / 14:13

2 respostas

1

Tente isto:

Se você deseja ser convidado antes de sair:

osascript -e 'tell application "Terminal" to close first window' 

Sair sem perguntar:

osascript -e 'tell application "Terminal" to close first window' & exit

Por favor, não use killall porque killall faz coisas diferentes em diferentes versões Unix.

    
por 16.03.2017 / 17:29
0

Você pode executar seu script no shell atual usando source (também conhecido como . ):

. ./test.sh

Desta forma, quando você script chamadas exit , o seu shell irá sair também. este deve fazer com que seu emulador de terminal também seja fechado.

Isso, no entanto, não funciona com o Terminal do macOS com seu padrão configurações, mas você poderia ir para Preferências → Perfis → Shell → "Quando o shell sai "e escolhe" Fechar a janela "ou" Fechar se o shell saiu limpo ".

    
por 16.03.2017 / 15:31