Se volessi eseguire un AppleScript da uno script bash, potrei chiamare un file con l'elenco dei comandi che devo eseguire.
#!/bin/bash
{some commands}
osascript file.scpt
{other commands}
E se volessi eseguire comandi che dovevano essere eseguiti in sequenza da bash?
Un esempio sarebbe
#!/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 inverosimile, ma funziona per spiegare cosa sto cercando di fare. Normalmente, quei comandi sarebbero tutti scritti senza i rispettivi \
caratteri di escape in tutto il luogo e meno "
attorno a ciascun comando. Li avrei anche all'interno di un .scpt
file.
Una soluzione di cui sono a conoscenza è quella di riscrivere lo script usando al #!/usr/bin/osascript
posto 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 di cui ho bisogno a quel file e quindi eseguire il file di script richiesto da bash, ma ciò vanifica anche lo scopo.
A metà strada attraverso un file, posso scambiare la shell in uso con la shebang
linea e poi scambiare indietro dopo aver eseguito i comandi necessari, vero?
Qualsiasi intuizione sarebbe più che benvenuta.
end tell
della sceneggiatura.