Alors que l'un ou l'autre des contextes de script peut faire tout ce que l'autre peut faire (car les scripts shell peuvent appeler /usr/bin/osascript
pour appeler un AppleScript et AppleScript a la do shell script
commande), il existe en effet des contextes pour lesquels l'un est mieux adapté que l'autre.
Les deux langages de script sont des langages «collants» - ils peuvent faire un minimum de choses eux-mêmes et accomplir à la place la plupart de leurs tâches en invoquant les capacités d'autres programmes. Les scripts shell utilisent des canaux Unix, tandis qu'AppleScript a la tell application
syntaxe.
Là où ils divergent, c'est que les AppleScripts communiquent directement avec des applications scriptables (presque toujours des applications GUI), tandis que les scripts shell communiquent principalement avec des programmes en ligne de commande (dont certains peuvent appeler des interfaces utilisateur graphiques, mais beaucoup ne le font pas).
En ce qui concerne les tâches de gestion de fichiers, les deux approches peuvent fonctionner. On peut Tell Application Finder
copier des fichiers ou exécuter la cp
commande dans un script shell. Alors pourquoi utiliser l'un sur l'autre? Certes, certains scénaristes connaissent mieux une langue que l'autre et préféreront donc utiliser cet outil. Mais une meilleure considération est celle de l'utilisateur du script. AppleScript peut souvent être invoqué à partir de l'interface graphique Mac: double-cliquer sur une application AppleScript, ou déposer des fichiers dans une, ou utiliser un menu AppleScript à l'échelle du système ou dans un programme particulier. Des programmes comme Mail peuvent être configurés pour exécuter un AppleScript sur les messages entrants afin de les filtrer. Pour les utilisateurs habitués à utiliser les Mac de manière "Mac" (c'est-à-dire à partir de l'interface graphique), les AppleScripts sont souvent plus accessibles.
Les scripts shell vivent souvent (mais pas toujours) dans le terminal. Si l'on utilise déjà Terminal, exécuter un script shell peut être plus pratique que d'appeler un AppleScript. D'un autre côté, de nombreux utilisateurs sont rebutés en devant taper des commandes dans une fenêtre de terminal, ou même en cliquant sur un fichier de script qui ouvre une fenêtre de terminal pour faire sa magie. Personnellement, je trouve la syntaxe des scripts shell plus lisible que celle des scripts Apple, mais je soupçonne que je suis minoritaire sur celui-ci. Les scripts shell sont familiers aux utilisateurs de nombreux systèmes différents de type Unix.
Dans tous les cas, les deux sont des outils puissants pour mieux contrôler votre Mac.