Wenn ich ein AppleScript innerhalb eines Bash-Skripts ausführen möchte, könnte ich eine Datei mit der Liste der Befehle aufrufen, die ich ausführen muss.
#!/bin/bash
{some commands}
osascript file.scpt
{other commands}
Was aber, wenn ich Befehle ausführen wollte, die innerhalb von bash nacheinander ausgeführt werden mussten?
Ein Beispiel wäre
#!/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"
Ich weiß, dass dies ein sehr weit hergeholtes Beispiel ist, aber es funktioniert, um zu erklären, was ich versuche zu tun. Normalerweise werden diese Befehle alle ohne die entsprechenden Escape- \
Zeichen an allen Stellen und weniger "
um jeden Befehl herum geschrieben. Ich hätte sie auch in einer .scpt
Akte.
Mir ist bewusst, dass es eine Lösung ist, das Skript mit #!/usr/bin/osascript
anstelle von bash umzuschreiben und von dort aus zu arbeiten, aber ich möchte in der Lage sein, zu mischen. Ich habe festgestellt, dass ich auf eine Skriptdatei testen kann, ob es eine gibt, um einen Befehl zu erstellen und jeden Befehl, den ich benötige, an diese Datei anzuhängen und dann die erforderliche Skriptdatei innerhalb von bash auszuführen.
Auf keinen Fall kann ich auf halbem Weg durch eine Datei die verwendete Shell mit der shebang
Zeile tauschen und dann zurück tauschen, nachdem ich die erforderlichen Befehle ausgeführt habe.
Jede Einsicht wäre mehr als willkommen.
end tell
Teil des Drehbuchs verpasst .