Si bien cualquiera de los contextos de scripting puede hacer cualquier cosa que el otro pueda hacer (porque los scripts de shell pueden /usr/bin/osascript
invocar para invocar un AppleScript y AppleScript tiene el do shell script
comando), de hecho, hay contextos para los cuales uno es más adecuado que el otro.
Ambos lenguajes de secuencias de comandos son lenguajes de "pegamento": pueden hacer cosas mínimas por sí mismos y, en su lugar, realizar la mayoría de sus tareas invocando las capacidades de otros programas. Los scripts de Shell utilizan tuberías Unix, mientras que AppleScript tiene la tell application
sintaxis.
Donde divergen es que AppleScripts se comunica directamente con aplicaciones programables (casi siempre aplicaciones GUI), mientras que los scripts de shell se comunican principalmente con programas de línea de comandos (algunos de los cuales pueden invocar interfaces gráficas de usuario, pero muchos no).
Cuando se trata de tareas de administración de archivos, ambos enfoques pueden funcionar. Uno puede Tell Application Finder
copiar archivos o ejecutar el cp
comando en un script de shell. Entonces, ¿por qué usar uno sobre el otro? Ciertamente, algunos escritores de guiones están más familiarizados con un idioma que con el otro y, por lo tanto, preferirán usar esa herramienta. Pero una mejor consideración es del usuario del script. AppleScript a menudo se puede invocar desde la GUI de Mac: haciendo doble clic en una aplicación AppleScript, o soltando archivos en una, o usando un menú AppleScript en todo el sistema o dentro de un programa en particular. Se pueden configurar programas como Mail para ejecutar un AppleScript en los mensajes entrantes para filtrarlos. Para los usuarios acostumbrados a usar Macs de forma "similar a Mac" (es decir, desde la GUI), los AppleScripts suelen ser más accesibles.
Los scripts de Shell a menudo (pero no siempre) viven en la Terminal. Si ya está utilizando Terminal, ejecutar un script de shell puede ser más conveniente que invocar un AppleScript. Por otro lado, muchos usuarios se desaniman al tener que escribir comandos en una ventana de Terminal, o incluso hacer clic en un archivo de script que abre una ventana de Terminal para hacer su magia. Personalmente, encuentro que la sintaxis de los scripts de shell es más legible que la de AppleScripts, pero sospecho que soy minoritario en ese sentido. Los scripts de shell son familiares para los usuarios de muchos sistemas diferentes tipo Unix.
En cualquier caso, ambas son herramientas poderosas para obtener un mejor control sobre su Mac.