Como fechar o aplicativo Terminal usando a linha de comando do terminal (“sair”) no macOS Catalina

Aug 16 2020

Quero fechar o Terminal usando a linha de comando do terminal.

Mas quando eu insiro o exitcomando, o Terminal apenas efetua logout da sessão, mas não fecha a janela do aplicativo. Existe alguma maneira de também fechar o aplicativo.

Estou executando o macOS Catalina 10.15.6.

Respostas

17 user3439894 Aug 16 2020 at 10:50

Em Terminal > Preferências… > Perfis > Shell , a configuração padrão para Quando o shell sai: é: Não feche a janela

Isso pode ser alterado para: Fechar a janela

Então o exit comando fechará a janela .


Edite para resolver a questão editada:

Se você quiser fechar a janela usando o exit comando, você pode fazer conforme sugerido na primeira parte desta resposta, no entanto, se você também quiser fechar o Terminal automaticamente e normalmente , como parte de seu script ou no lugar do exit comando como mostrado na sua pergunta, então você pode fazer o seguinte:

Primeiro, crie um aplicativo AppleScript simples usando o seguinte exemplo de código AppleScript no Editor de scripts :

tell application "Terminal" to if (busy of windows) does not contain true then quit

Salvando-o como um aplicativo chamado, por exemplo, QuitTerminal na pasta principal de Aplicativos .

Depois de salvá-lo, abra o Terminal e, por exemplo, o QuitTerminal para acionar a permissão de permissão em Preferências do Sistema > Segurança e Privacidade > Privacidade

Depois de fazer isso, você pode usar o seguinte no final do seu script ou no lugar do exit comando :

open -a "OuitTerminal"

Exemplo baseado no comando mostrado em sua pergunta:

/Users/harikrishna/Desktop/youtube.sh ; open -a "OuitTerminal"

Isso só fechará o Terminal se não houver processos em execução em nenhuma das janelas do Terminal .

Nota: Se você não quiser ver, por exemplo, OuitTerminal show no Dock , você pode modificar o aplicativo usando o seguinte comando no Terminal :

defaults write '/Applications/OuitTerminal.app/Contents/Info.plist' LSUIElement -bool yes

Se você não se importar com nenhum processo em execução, pode forçar o fechamento do Terminal a partir do script ou comando usando killall Terminalno lugar de exit; no entanto, isso é confuso e eu não recomendo usá-lo sobre o que foi apresentado acima.