Wenn Sie ein Freund von Shell-Skripten unter macOS sind, ist Ihnen vielleicht aufgefallen, dass nach der Ausführung eines solchen Skripts oft ein unnötiges Terminalfenster zurückbleibt. Dieses Verhalten lässt sich jedoch in den Terminaleinstellungen anpassen.
Diese Anpassung wirkt sich hauptsächlich auf Shell-Skripte aus, die außerhalb der Bash gestartet werden, zum Beispiel durch einen Doppelklick im Finder oder über einen benutzerdefinierten Hotkey. Skripte, die direkt in der Bash ausgeführt werden, führen hingegen lediglich zur Rückkehr zur Eingabeaufforderung. Die Terminal-App lässt sich zwar über den Befehl killall Terminal
aus einem Skript heraus schließen, dies beendet jedoch sämtliche geöffneten Terminalfenster, was oft nicht wünschenswert ist.
Verhalten in den Profileinstellungen anpassen
Starten Sie die Terminal-App, entweder über das Dock oder den Anwendungsordner. Anschließend öffnen Sie die Einstellungen mit der Tastenkombination Befehl + Komma.
Im Einstellungsfenster wählen Sie den Reiter „Profile“. Das Standardprofil sollte bereits aktiviert sein (meist das oberste Profil in der Liste). Klicken Sie rechts auf den Reiter „Shell“ und öffnen Sie das Dropdown-Menü „Wenn die Shell beendet wird“.
Standardmäßig ist hier „Fenster nicht schließen“ ausgewählt. Ändern Sie dies zu „Schließen, wenn die Shell sauber beendet wurde“.
Alternativ können Sie auch „Immer schließen“ auswählen, allerdings erhalten Sie dann bei Prozessen mit einem Exit-Status ungleich null eine Fehlermeldung. In einigen Fällen kann es erforderlich sein, das Skript mit dem Befehl exit
explizit zu beenden, damit dieses Verhalten in allen Fällen greift.
Wenn das Skript jedoch über den Finder gestartet wird, wird der exit
-Befehl automatisch angehängt.
Alternative: iTerm verwenden
iTerm2, ein häufig genutzter Terminalersatz für macOS, schließt Fenster von selbst, sobald ein Shell-Skript beendet ist. Sollten Sie iTerm bereits verwenden, ist Ihnen eventuell aufgefallen, dass Shell-Skripte, die über den Finder gestartet werden, dennoch in der Standard-Terminal-App geöffnet werden. Dies bedeutet, dass das oben genannte Problem weiterhin besteht, es sei denn, Sie legen fest, dass Skripte mit iTerm geöffnet werden sollen.
Um zu ändern, mit welcher Anwendung Skripte geöffnet werden, klicken Sie im Finder mit der rechten Maustaste auf das entsprechende Skript und wählen „Informationen“.
Im daraufhin erscheinenden Dropdown-Menü können Sie die Anwendung zum Öffnen des Skripts ändern. Stellen Sie diese auf iTerm und klicken Sie auf „Alle ändern“, um diese Einstellung auf sämtliche Skripte anzuwenden.
Wenn Sie bereits ein iTerm-Fenster geöffnet haben, wird das Skript standardmäßig in einem neuen Tab und nicht in einem separaten Fenster gestartet. Dieser Tab schließt sich nach Beendigung des Skripts automatisch.