Så här stänger du macOS-terminalen automatiskt när en process avslutas

By rik

Om du regelbundet använder shell-skript i macOS, har du säkert lagt märke till att när ett skript avslutas, lämnas ett terminalfönster kvar, även om det inte längre är i bruk. Lyckligtvis finns det en lösning på detta problem, direkt i terminalens inställningar.

Denna metod är främst relevant när du kör ett shell-skript utanför bash-miljön, till exempel genom att dubbelklicka på det i Finder eller genom en egen snabbkommando för att öppna programmet. Om du kör skriptet direkt från bash, kommer du som vanligt att återvända till kommandoprompten efteråt. Även om kommandot `killall Terminal` kan användas inifrån ett skript för att stänga terminalen, stänger det alla öppna terminalfönster, vilket oftast inte är önskvärt.

Justera beteendet i profilinställningarna

Starta applikationen Terminal, antingen från Dock eller Programmappen. Öppna sedan inställningarna genom att trycka på Kommando + Komma.

I inställningsfönstret, navigera till fliken ”Profiler”. Standardprofilen (den som är listad överst) bör redan vara markerad. I inställningsområdet på höger sida, klicka på fliken ”Shell”. Därefter, klicka på rullgardinsmenyn ”När skalet avslutas”.

Denna meny är som standard inställd på ”Stäng inte fönstret”. För att åtgärda problemet vill du ändra detta till ”Stäng om skalet avslutas på ett rent sätt”.

Ett annat alternativ är att stänga fönstret varje gång, men detta kan leda till att felmeddelanden visas om processen avslutas med en statuskod som inte är noll. Notera att du kan behöva avsluta skriptet explicit med `exit`-kommandot för att säkerställa att det stänger i alla situationer.

Men om skriptet startas via Finder, läggs `exit`-kommandot automatiskt till i slutet av skriptet.

Alternativt: Använd iTerm2

iTerm2 är ett populärt terminalalternativ för macOS som automatiskt stänger fönstret när ett shell-skript avslutas. Om du redan använder iTerm som din standardterminal, kanske du har märkt att shell-skript som startas från Finder fortfarande öppnas i den vanliga terminalappen. Det innebär att du fortfarande kommer att ha samma problem om du inte ställer in skript att öppnas med iTerm.

Du kan ändra vilken applikation skript öppnas med genom att högerklicka på skriptet i Finder och välja ”Visa info”.

Där finns en rullgardinsmeny där du kan ändra vilken applikation skriptet ska öppnas med. Välj iTerm och klicka sedan på ”Ändra alla” för att tillämpa ändringen på alla liknande skript.

Som standard, om ett iTerm-fönster redan är öppet, startas skriptet i en ny flik istället för ett nytt fönster. Denna flik stängs sedan automatiskt när skriptet är färdigt.