Si je voulais exécuter un AppleScript à partir d'un script bash, je pourrais appeler un fichier contenant la liste des commandes à exécuter.
#!/bin/bash
{some commands}
osascript file.scpt
{other commands}
Mais qu'en est-il si je veux exécuter des commandes qui doivent être exécutées en séquence à partir de bash ?
Un exemple serait
#!/bin/bash
echo
echo This will open Google Chrome in Kiosk mode
osascript -e "tell application \"Google Chrome\""
osascript -e "activate"
osascript -e "tell application \"System Events\""
osascript -e "key down {command}"
osascript -e "key down {shift}"
osascript -e "keystroke \"f\""
osascript -e "key up {shift}"
osascript -e "key up {command}"
osascript -e "end tell"
echo "Google Chrome is now open in Kiosk Mode"
Je sais que cet exemple est très tiré par les cheveux, mais il permet d'expliquer ce que j'essaie de faire. Normalement, ces commandes devraient toutes être écrites sans leur échappement respectif. \
des personnages un peu partout et moins "
autour de chaque commande. Je les placerais également à l'intérieur d'un .scpt
fichier.
Une solution dont j'ai connaissance consiste à réécrire le script à l'aide de #!/usr/bin/osascript
au lieu de bash et partir de là, mais je veux être capable de mélanger. J'ai trouvé que je peux tester pour un fichier script, s'il existe pour en créer un et ajouter chaque commande dont j'ai besoin à ce fichier et ensuite exécuter le fichier script requis à partir de bash, mais cela va également à l'encontre du but recherché.
Il n'y a aucun moyen pour qu'au milieu d'un fichier, je puisse échanger l'interpréteur de commandes utilisé avec l'interpréteur de commandes de l'utilisateur. shebang
puis revenir après avoir exécuté les commandes nécessaires, n'est-ce pas ?
Tout commentaire sera le bienvenu.