Se volessi eseguire un AppleScript da uno script bash, potrei chiamare un file con l'elenco di comandi che ho bisogno di eseguire.
#!/bin/bash
{some commands}
osascript file.scpt
{other commands}
Che cosa, tuttavia, se volessi eseguire comandi che dovevano essere eseguiti in sequenza da bash?
Un esempio potrebbe essere
#!/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"
So che questo è un esempio molto esagerato, ma funziona per spiegare cosa sto cercando di fare. Normalmente, quei comandi verrebbero scritti tutti senza i rispettivi escape \
caratteri in tutto il luogo e meno "
attorno a ciascun comando. Li avrei anche contenuti in un file .scpt
.
Una soluzione di cui sono a conoscenza, è riscrivere lo script usando #!/usr/bin/osascript
invece di bash e andare da lì, ma voglio essere in grado di fondere. Ho scoperto che posso testare un file di script, se esiste per crearne uno e aggiungere ogni comando che mi serve a quel file e quindi eseguire il file di script richiesto da bash, ma anche quello lo sconfigge.
Non c'è modo che a metà strada attraverso un file, posso scambiare la shell che viene utilizzata con la riga shebang
e poi tornare indietro dopo aver eseguito i comandi necessari, c'è?
Qualsiasi intuizione sarebbe più che benvenuta.