macOS: Feche o Terminal Automaticamente após Scripts Shell

Para quem utiliza scripts de shell no macOS, é comum notar que a execução de um deles deixa uma janela do Terminal aberta e sem função após a conclusão. Felizmente, é possível modificar esse comportamento nas configurações do Terminal.

Essa solução é eficaz ao iniciar um script de shell fora do bash, como ao clicar nele no Finder ou ao usar um atalho de teclado para executá-lo. Caso contrário, você retornará ao prompt de comando. Embora o comando killall Terminal possa fechar o aplicativo Terminal por meio de um script, ele encerrará todas as janelas abertas, o que nem sempre é desejável.

Modificando o Comportamento nos Ajustes do Perfil

Abra o aplicativo Terminal, seja pelo Dock ou pela pasta Aplicativos, e acesse as configurações pressionando Command + Vírgula.

Na janela de configurações, vá para a aba “Perfis”. O perfil padrão deve estar selecionado automaticamente. Nas opções à direita, clique na aba “Shell” e, em seguida, no menu suspenso “Quando o shell sai”.

O menu suspenso tem por padrão a opção “Não feche a janela”, mas altere para “Fechar se o shell saiu corretamente”.

Também é possível configurar para fechar sempre, mas nesse caso, você ainda receberá uma mensagem de erro se o processo finalizar com um status diferente de zero. Tenha em mente que pode ser necessário encerrar o script de forma explícita com o comando exit para garantir esse comportamento em todas as situações.

Entretanto, ao executar o script a partir do Finder, o comando exit é automaticamente adicionado ao script.

Alternativa: Utilizando o iTerm

O iTerm2, um substituto popular do Terminal para macOS, fecha automaticamente a janela após a finalização de um script de shell. Se você já usa o iTerm como seu terminal padrão, pode ter notado que os scripts iniciados pelo Finder ainda abrem com o aplicativo Terminal padrão. Isso significa que o problema persiste, a menos que você configure os scripts para abrir com o iTerm.

Para alterar com qual aplicativo os scripts são abertos, clique com o botão direito no script no Finder e selecione “Obter Informações”.

Haverá um menu suspenso para escolher o aplicativo com o qual o script será aberto. Selecione o iTerm e clique em “Alterar tudo” para aplicar a mudança a todos os scripts.

Por padrão, se você já tiver uma janela do iTerm aberta, o script será aberto em uma nova aba, e essa aba se fechará automaticamente ao finalizar.