Comment fermer automatiquement le terminal macOS à la fin d’un processus



Pour ceux qui apprécient les scripts shell sur macOS, il est probable que vous ayez remarqué qu’exécuter un tel script laisse souvent une fenêtre de terminal superflue une fois l’opération terminée. Heureusement, il est possible de corriger ce comportement directement dans les réglages du terminal.

Cette astuce fonctionne principalement lorsque vous démarrez un script shell en dehors du shell bash, par exemple en cliquant dessus via le Finder ou en utilisant un raccourci clavier personnalisé. Dans le cas contraire, vous retournerez simplement à l’invite de commande. Bien qu’il soit possible d’utiliser la commande killall Terminal pour fermer l’application Terminal via un script, cela risque de clore toutes les fenêtres Terminal ouvertes, ce qui n’est pas idéal.

Modifier le comportement dans les paramètres de profil

Ouvrez l’application Terminal depuis le Dock ou votre dossier Applications, puis accédez aux paramètres via le raccourci Cmd + virgule.

Dans la fenêtre des Préférences, naviguez vers l’onglet « Profils ». Le profil par défaut (souvent celui en haut de la liste) devrait être sélectionné. Dans les paramètres situés sur la droite, cliquez sur l’onglet « Shell », puis repérez le menu déroulant « À la fermeture du shell ».

Ce menu déroulant est généralement paramétré sur « Ne pas fermer la fenêtre ». Il est préférable de le modifier en choisissant « Fermer si le shell s’est terminé proprement ».

Il existe également une option pour fermer la fenêtre à chaque fois, mais cette option peut générer un message d’erreur si un processus se termine avec un code de sortie autre que zéro. Sachez que pour que ce comportement fonctionne de manière systématique, il peut être nécessaire de terminer explicitement le script avec la commande exit.

Cependant, si vous lancez un script à partir du Finder, la commande exit est automatiquement ajoutée à la fin.

Alternative : utiliser iTerm2

iTerm2, une alternative populaire à Terminal pour macOS, offre la fonctionnalité de fermer automatiquement la fenêtre lorsqu’un script shell se termine. Si vous utilisez déjà iTerm comme terminal par défaut, vous avez peut-être remarqué que les scripts lancés depuis le Finder s’ouvrent toujours avec l’application Terminal standard. Cela signifie que le problème de la fenêtre qui reste ouverte persiste, à moins que vous ne paramétriez les scripts pour qu’ils s’ouvrent avec iTerm.

Pour modifier l’application par défaut qui ouvre vos scripts, faites un clic droit sur le script dans le Finder, puis sélectionnez « Lire les informations ».

Un menu déroulant vous permettra de choisir avec quelle application ouvrir le script. Sélectionnez iTerm et cliquez sur « Tout modifier » pour que ce changement soit appliqué à tous les scripts.

Par défaut, si une fenêtre iTerm est déjà ouverte, le script s’exécutera dans un nouvel onglet plutôt que dans une nouvelle fenêtre. L’onglet se fermera automatiquement une fois l’exécution terminée.