Si quisiera ejecutar un AppleScript desde un script bash, podría llamar a un archivo con la lista de comandos que debo ejecutar.
#!/bin/bash
{some commands}
osascript file.scpt
{other commands}
¿Qué sucede, sin embargo, si quisiera ejecutar comandos que debían ejecutarse en secuencia desde bash?
Un ejemplo sería
#!/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"
Sé que este es un ejemplo muy descabellado, pero funciona para explicar lo que estoy tratando de hacer. Normalmente, esos comandos se escribirían sin sus respectivos \
caracteres de escape en todo el lugar y menos "
alrededor de cada comando. También los tendría dentro de un .scpt
archivo.
Una solución que conozco es reescribir el script usando en #!/usr/bin/osascript
lugar de bash e ir desde allí, pero quiero poder mezclar. He descubierto que puedo probar un archivo de secuencia de comandos, si existe para crear uno y agregar cada comando que necesito a ese archivo y luego ejecutar el archivo de secuencia de comandos requerido desde bash, pero eso también anula el propósito.
No hay forma de que a la mitad de un archivo, pueda intercambiar el shell que se está utilizando con la shebang
línea y luego volver a cambiar después de haber ejecutado los comandos necesarios, ¿existe?
Cualquier idea sería más que bienvenida.
end tell
del guión.