shell osx termina após o uso

shell osx termina após o uso

Eu tenho um script de shell que muda de diretório e depois é executado. Quero que a alteração do diretório seja exibida no prompt de comando assim que o script terminar.

Então, eu executo com:

. script

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

Minha concha é bash.

Responder1

Existem duas maneiras de remediar isso no Mac

A> Vá para Preferências de Terminal, selecione [Geral] e desmarque a caixa que diz "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>
<inteiro>1< /inteiro>

mude 1 para 2 e reinicie o aplicativo de terminal.

B é basicamente igual a A, mas feito manualmente.

Responder2

Contém scriptuma exitdeclaração? Lembre-se de que dot (sourcing) executa seu código no shell atual. Então, se tiver um exit, seu shell atual será encerrado. Você pode querer verificar o script e alterá-lo exitpara return.

Você pode detectar a origem (onde você deseja fazer return) e a execução (onde você deseja exit)

[[ $BASH_SOURCE != $0 ]] && echo 'running sourced ...'

informação relacionada