Come chiudere automaticamente il terminale macOS all’uscita da un processo

Se sei un appassionato di script shell su macOS, avrai notato che l’esecuzione di uno di essi lascia aperta una finestra di Terminale non necessaria al termine dell’operazione. Fortunatamente, puoi ovviare a questo problema attraverso le impostazioni del terminale.

Questo approccio funziona specificatamente quando avvii uno script shell al di fuori di bash, ad esempio, facendo doppio clic nel Finder oppure impostando una scorciatoia da tastiera personalizzata per lanciare il programma. In caso contrario, verresti semplicemente riportato alla riga di comando. Una soluzione alternativa, all’interno di uno script, potrebbe essere l’uso di killall Terminal per forzare la chiusura dell’applicazione Terminale, ma questo chiuderebbe tutte le finestre aperte, quindi non è l’ideale.

Personalizzazione del comportamento tramite le impostazioni del profilo

Avvia l’applicazione Terminale dal Dock o dalla cartella Applicazioni, poi apri le preferenze premendo Comando + Virgola.

Nella finestra delle impostazioni, seleziona la scheda “Profili”. Il profilo predefinito (quello in cima alla lista) dovrebbe essere già selezionato. Nelle impostazioni a destra, clicca sulla scheda “Shell” e successivamente apri il menu a tendina “Quando la shell esce”.

L’opzione predefinita del menu a tendina è “Non chiudere la finestra”, ma ti suggeriamo di modificarla in “Chiudi se la shell è uscita in modo corretto”.

È possibile optare anche per la chiusura automatica in ogni caso, però in questa circostanza riceveresti un avviso di errore se un processo termina con un codice di uscita diverso da zero. È bene ricordare che potrebbe essere necessario terminare lo script esplicitamente tramite il comando exit per assicurare questo comportamento in ogni situazione.

Ad ogni modo, se lo script viene avviato dal Finder, il comando di uscita sarà automaticamente aggiunto.

Alternativa: l’uso di iTerm

iTerm2, un’ottima alternativa al terminale predefinito di macOS, ha la funzione di chiudere automaticamente la finestra al termine di uno script shell. Se utilizzi già iTerm come tuo terminale predefinito, potresti aver notato che gli script shell lanciati dal Finder si aprono comunque nell’applicazione Terminale standard. Questo significa che il problema persiste, a meno che tu non imposti i tuoi script per aprirsi con iTerm.

È possibile cambiare l’applicazione con cui si apre uno script facendo clic con il pulsante destro del mouse sullo script nel Finder, quindi selezionando “Ottieni informazioni”.

Comparirà un menu a tendina per scegliere l’applicazione con cui aprire lo script. Imposta iTerm e premi “Cambia tutto” per applicare questa modifica a tutti gli script.

Normalmente, se hai già una finestra iTerm aperta, lo script si aprirà in una nuova scheda anziché in una nuova finestra, e tale scheda si chiuderà automaticamente al termine.