Mentre il contesto di scripting può fare qualsiasi cosa l'altro può (perché gli script di shell possono chiamare /usr/bin/osascript
per invocare un AppleScript e AppleScript ha il comando do shell script
), esistono effettivamente contesti per i quali uno è più adatto dell'altro.
Entrambi i linguaggi di scripting sono linguaggi di "colla": possono fare da soli le cose minime, e invece svolgere la maggior parte dei loro compiti invocando le capacità di altri programmi. Gli script di shell fanno uso di pipe Unix, mentre AppleScript ha la sintassi tell application
.
Dove divergono è che AppleScripts comunica direttamente con le applicazioni scriptable (quasi sempre applicazioni GUI), mentre gli script della shell comunicano principalmente con i programmi della riga di comando (alcuni dei quali possono richiamare le interfacce utente grafiche, ma molti non lo fanno).
Quando si tratta di attività di gestione dei file, entrambi gli approcci possono funzionare. Uno può Tell Application Finder
per copiare i file, o eseguire il comando cp
in uno script di shell. Quindi perché usarne uno sull'altro? Certamente alcuni sceneggiatori hanno più familiarità con una lingua rispetto all'altra, e quindi preferiranno usare quello strumento. Ma una considerazione migliore è dell'utente della sceneggiatura. Spesso AppleScript può essere richiamato dalla GUI Mac: facendo doppio clic su un'applicazione AppleScript o trascinandone i file su uno di essi, oppure utilizzando un menu AppleScript a livello di sistema o all'interno di un particolare programma. Programmi come Mail possono essere impostati per eseguire un AppleScript sui messaggi in arrivo per filtrarli. Per gli utenti abituati a utilizzare i Mac in modalità "Mac" (ad esempio dalla GUI), gli AppleScript sono spesso più accessibili.
Gli script di shell spesso (ma non sempre) vivono nel terminale. Se si sta già utilizzando Terminal, l'esecuzione di uno script di shell può essere più comoda del richiamo di un AppleScript. D'altra parte, molti utenti sono scoraggiati dal dover digitare comandi in una finestra di Terminale, o anche fare clic su un file di script che apre una finestra di Terminale per fare la sua magia. Personalmente trovo la sintassi degli script di shell più leggibile rispetto a quella degli AppleScript, ma sospetto che io sia in minoranza su quello. Gli script di shell sono familiari per gli utenti di molti diversi sistemi simili a Unix.
In ogni caso, entrambi sono strumenti potenti per ottenere un controllo migliore sul tuo Mac.