Si bien el contexto de script puede puede hacer cualquier cosa que el otro (ya que los scripts de shell pueden llamar a /usr/bin/osascript
para invocar un AppleScript, y AppleScript tiene el comando do shell script
), existen contextos para los cuales uno se adapta mejor que el otro.
Ambos lenguajes de script son lenguajes de "pegamento": ellos mismos pueden hacer cosas mínimas y, en su lugar, realizar la mayoría de sus tareas invocando las capacidades de otros programas. Los scripts de shell utilizan tuberías de Unix, mientras que AppleScript tiene la sintaxis tell application
.
Donde divergen es que AppleScripts se comunican directamente con aplicaciones de secuencias de comandos (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 otros no).
Cuando se trata de tareas de administración de archivos, ambos enfoques pueden funcionar. Uno puede Tell Application Finder
para copiar archivos, o ejecutar el comando cp
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 el otro y, por lo tanto, preferirán usar esa herramienta. Pero una mejor consideración es del usuario del script. AppleScript puede invocarse a menudo desde la GUI de Mac: haga doble clic en una aplicación AppleScript, coloque archivos en uno o utilice un menú AppleScript para todo el sistema o dentro de un programa en particular. Los programas como Mail se pueden configurar para ejecutar un AppleScript en los mensajes entrantes para filtrarlos. Para los usuarios que están acostumbrados a usar Mac de una manera "similar a Mac" (es decir, desde la GUI), a menudo los AppleScripts son más accesibles.
Los scripts de shell a menudo (pero no siempre) viven en la Terminal. Si uno ya está utilizando Terminal, ejecutar un script de shell puede ser más conveniente que invocar un AppleScript. Por otro lado, muchos usuarios están molestos al tener que escribir comandos en una ventana de Terminal, o incluso al 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 estoy en una minoría en eso. Los scripts de shell son familiares para los usuarios de muchos sistemas diferentes similares a Unix.
En cualquier caso, ambas son herramientas poderosas para obtener un mejor control sobre tu Mac.