Pokud často pracujete se skripty v macOS, možná jste si všimli, že po spuštění skriptu zůstává otevřené okno Terminálu. Tento problém se dá vyřešit úpravou nastavení aplikace Terminál.
Toto řešení je účinné zejména tehdy, když skript spouštíte mimo prostředí Bash, například kliknutím ve Finderu nebo pomocí vlastní klávesové zkratky. V takovém případě se standardně okno Terminálu samo neuzavře. I když můžete použít příkaz killall Terminal
, ten ukončí všechny otevřené instance Terminálu, což nemusí být vždy žádoucí.
Úprava chování v nastavení profilu
Spusťte aplikaci Terminál z Docku nebo složky Aplikace a poté otevřete nastavení pomocí klávesové zkratky Command + čárka.
V zobrazeném okně Nastavení přejděte na záložku „Profily“. Většinou je jako výchozí vybrán profil s názvem „Výchozí“ (ten úplně nahoře). V pravé části okna klikněte na kartu „Shell“ a poté na rozbalovací nabídku „Když shell skončí“.
Ve výchozím nastavení je zde nastavena možnost „Nezavírat okno“. Změňte tuto volbu na „Zavřít, pokud shell skončil čistě“.
Můžete si zvolit i možnost zavírat okno Terminálu pokaždé, nicméně pokud proces skončí s chybovým kódem, zobrazí se vám chybová hláška. Je dobré vědět, že pro správné fungování této funkce může být někdy nutné explicitně ukončit skript příkazem exit
.
Při spouštění skriptu z Finderu se příkaz exit
přidává automaticky.
Alternativa – iTerm2
iTerm2 je oblíbenou alternativou Terminálu pro macOS. Má výhodu, že při ukončení skriptu shellu okno zavře automaticky. Pokud iTerm2 používáte jako výchozí terminál, možná jste si všimli, že spuštění skriptů z Finderu stále otevírá aplikaci Terminál. Abyste tento problém vyřešili, musíte nastavit, aby se skripty otevíraly právě v iTerm2.
To, v jaké aplikaci se skripty otevírají, změníte tak, že kliknete pravým tlačítkem na skript ve Finderu a vyberete „Získat informace“.
Zobrazí se vám rozbalovací nabídka, kde můžete zvolit aplikaci, ve které se daný skript bude otevírat. Vyberte iTerm2 a klikněte na „Změnit vše“ pro aplikaci této změny na všechny skripty.
Pokud již máte otevřené okno iTerm2, skript se spustí v nové záložce a po dokončení se tato záložka automaticky zavře.