Gracefully Stäng ett program från kommandoraden i Mac OS X

Avsluta apps graciöst görs vanligen via lämplig programmeny genom att välja "Avsluta", men Mac GUI är uppenbarligen otillgänglig från kommandoraden i Mac OS X. Så när de flesta kommandoradsanvändare konfronteras med behovet av att lämna ett program, avsluta med kommandot "döda" för att avsluta processen och tvinga avsluta appen, snarare än att utfärda en "mjuk" död. Det uppenbara problemet med att avsluta en app är att medan programmet avslutas, kan du förlora data i den processen, och även cache för kollision av sessionen kanske inte är tillräcklig för att återställa data. Så, när det är möjligt, är det vanligtvis bäst för användarna att i stället avsluta en ansökan istället.


Även om det inte är särskilt välkänt kan du skicka en standardavslutningssignal till en Mac OS X GUI-app från kommandoraden med hjälp av osascript-kommandot. Det är ganska lätt att använda, och det är vad vi ska täcka här.

Så här avslutar du Grace Apps från terminalen i Mac OS X med osascript

Återigen kommer detta att utfärda en standardavslutningssignal till en applikation, snarare än en dödsignal (avsluta). Det betyder också att målansökan inte kommer att tvingas lämna om det finns osparade data utan att användaren uppmanas att skriva in (om du inte har automatisk spara inställning aktiverad för Mac OS X och programmet inte uppmanar användaren till följd).

Den grundläggande syntaxen för att skicka en standardavslutningssignal till en GUI-applikation i Mac OS X från Terminal är som följer:

osascript -e 'quit app "APPLICATIONNAME"'

Om du exempelvis vill avsluta kalender från kommandoraden ska du ersätta APPLICATIONNAME med "Kalender"

osascript -e 'quit app "Calendar"'

Eftersom Kalender synkroniserar och inte har spara alternativ, kommer du inte att presenteras med standard Save dialog när du försöker stänga appen. Med appar som har sparade alternativ och när Mac OS X har auto-save inaktiverat, sparas dialogrutan spara som vanligt.

En annan fördel med att använda osascript för att stänga appar på ett elegant sätt är att du kan tillhandahålla ett verkligt applikationsnamn, vilket är mycket lättare att komma ihåg och ganska mer användarvänligt än att helt förlita sig på process ID-nummer som går med kill-kommandot. Observera att moderna versioner av Mac OS X erbjuder ett förbättrat dödkommando som är mer användarvänligt, känt som pkill.

Du kan använda detta i ett bash-script för att stänga program från kommandoraden, eller till och med ändra det för att uppträda på samma sätt som "Avsluta alla öppna appar" med Automator-trick vi täckte ett tag tillbaka.