osx shell termina após o uso

1

Eu tenho um script de shell que muda de diretório e, em seguida, é executado. Eu quero a mudança de diretório para ser borbulhada para o prompt de comando uma vez que o script termina.

Então, eu corro com:

. script

No entanto, agora, quando o script termina, a janela inteira é encerrada. Existe uma maneira de corrigir isso?

Meu shell é bash.

    
por osxshell 29.10.2010 / 18:44

2 respostas

0

Existem duas maneiras de corrigir isso no Mac

A > Vá até Preferences for Terminal, selecione [General] e desmarque a caixa "Fechar janela se o shell sair corretamente".

B > Aponte seu editor de texto favorito para ~ / Library / Preferences / com.apple.Terminal.plist

Encontre as linhas:     

 < key>ShellExitAction< /key>
< integer>1< /integer>

altere o 1 para um 2 e reinicie o aplicativo do terminal.

B é basicamente o mesmo que A, mas feito manualmente.

    
por 29.10.2010 / 20:21
5

O script contém uma declaração exit ? Lembre-se que dot (sourcing) executa seu código no shell atual. Portanto, se ele tiver um exit , seu shell atual será encerrado. Você pode querer verificar o script e alterar qualquer exit para return .

Você pode detectar a origem (em que deseja fazer return ) e ser executado (onde você pode querer exit )

[[ $BASH_SOURCE != $0 ]] && echo 'running sourced ...'
    
por 29.10.2010 / 18:50