Comment passer des données depuis le Terminal vers un script AppleScript ?
Lancer un script Applescript depuis le Terminal nécessite l’utilisation de la commande « osascript » suivi du chemin vers le fichier Applescript comme ceci :
(Ligne de commande à placer dans le terminal)
$ osascript ~/Desktop/mon_script.scpt
(Le Script mon_Script.scpt est placé sur le bureau)
Maintenant nous souhaitons envoyer à mon script le contenu d’une variable.
La première étape consiste à créer cette variable unix comme ceci. La variable « var » contiendra le texte entre guillemets :
$ var=$(echo « Mon nom est Mac »)
La transmission de la variable se fait toujours en plaçant la variable entre guillemet (pour le texte) et en plaçant un symbole « $ » avant le nom de la variable comme ceci :
$ osascript ~/Desktop/mon-script.scpt "$var"
Les deux commandes peuvent être associées dans une seule commande en les séparant par un point virgule « ; » pour former la commande suivant :
$ var=$(echo "Mon nom est Mac"); osascript ~/Desktop/mon-script.scpt "$var"
La seconde partie consiste à créer le script AppleScript et de collecter le contenu de la variable qui est passée, la structure du script est la suivante :
on run argv
repeat with i from 1 to count of argv
tell application "Finder"
activate
display dialog (item i of argv)
end tell
end repeat
end run
Il s’explique ainsi. L’exécution du script s’appuie sur des arguments (on run argv). La ligne suivante boucle sur le nombre d’arguments fournis.
Ensuite, le code entre les commandes « tell » et « end tell » est exécuté avec chaque argument.
Dans l’exemple présenté le Finder affiche le texte passé en argument, celui stocké dans la variable « argv ».
Vous pouvez utiliser cette astuce pour réaliser des opérations sur les fichiers AppleScript tout en plaçant la commande dans un script Shell.
Henri Dominique Rapin