Gracefully Luk et program fra kommandolinjen i Mac OS X

Afslutning af apps yndefuldt sker typisk via den relevante applikationsmenu ved at vælge "Afslut", men Mac GUI er åbenbart utilgængelig fra kommandolinjen i Mac OS X. Så når de fleste kommandolinjebrugere konfronteres med behovet for at afslutte et program, afvikle ved hjælp af kommandoen 'kill' for at afslutte processen og tvangsafslutte appen, snarere end at udstede en 'soft' kill. Det åbenlyse problem med at afslutte en app er, at selvom det afslutter programmet, kan du miste data i den proces, og endda cv'er til genoprettelse af genstande er muligvis ikke tilstrækkelige til at gendanne dataene. Således er det normalt, når det er muligt, at brugerne yder gracefully en ansøgning i stedet.


Selv om det ikke er særlig godt kendt, kan du sende et standard quit-signal til enhver Mac OS X GUI-app fra kommandolinjen med hjælp fra osascript-kommandoen. Det er ret nemt at bruge, og det er det, vi dækker her.

Sådan afslutter du Grace Apps fra terminalen i Mac OS X med osascript

Igen vil dette udstede et standardafslutningssignal til en applikation, snarere end et kill (signal) signal. Det betyder også, at målprogrammet ikke tvinges til at gå ud, hvis der ikke er gemte data uden at anmode brugeren om input (medmindre du har auto-save-indstilling aktiveret til Mac OS X, og applikationen beder ikke brugeren som følge heraf).

Den grundlæggende syntaks, der sender et standardafslutningssignal til en GUI-applikation i Mac OS X fra Terminal, er som følger:

osascript -e 'quit app "APPLICATIONNAME"'

Hvis du f.eks. Vil afslutte Kalender fra kommandolinjen, skal du erstatte APPLICATIONNAME med "Kalender"

osascript -e 'quit app "Calendar"'

Da Kalender synkroniserer og ikke har en gemmningsindstilling, vises du ikke med standard gem dialog, når du forsøger at lukke appen. Med apps, der har gemme indstillinger, og når Mac OS X har automatisk lagring deaktiveret, bliver dialogen gemt som normalt.

En anden fordel ved at bruge osascript til at lukke apps yndefuldt er, at du kan levere et egentligt ansøgningsnavn, hvilket er meget lettere at huske og ret mere brugervenligt end at stole helt på proces ID-numre, der går med kill-kommandoen. Bemærk, at moderne versioner af Mac OS X tilbyder en forbedret kill-kommando, der er mere brugervenlig, kendt som pkill.

Du kan bruge dette i et bash script til at lukke applikationer fra kommandolinjen, eller endda ændre det til at opføre sig på samme måde som "Afslut alle åbne apps" med Automator trick, vi dækkede et stykke tid tilbage.