Bir AppleScript'i bir bash betiğinin içinden çalıştırmak istersem, yürütmem gereken komutların listesini içeren bir dosyayı çağırabilirim.
#!/bin/bash
{some commands}
osascript file.scpt
{other commands}
Ancak, bash içinden sırayla çalıştırılması gereken komutları çalıştırmak istersem ne yapmalıyım?
Bir örnek olurdu
#!/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"
Bunun çok uzak bir örnek olduğunu biliyorum, ama ne yapmaya çalıştığımı açıklamaya çalışıyor. Normalde, bu komutların \tümü, her yerdeki ilgili kaçış karakterleri olmadan ve "her komutun etrafında daha az yazılır . Onları bir .scptdosyanın içinde de tutardım.
Farkında olduğum bir çözüm, betiği #!/usr/bin/osascriptbash yerine kullanarak yeniden yazmak ve oradan gitmek, fakat karıştırmak istiyorum. Bir komut dosyası için test edebileceğimi öğrendim, eğer bir tane oluşturmak ve bir komutu eklemek için mevcutsa bu dosyaya ihtiyacım var ve ardından gerekli komut dosyasını bash içinden yürütmek, ancak bu da amacı bozuyor.
Bir dosyanın ortasından geçmem mümkün değil, shebanghat ile kullanılan kabuğu değiştirip sonra gerekli komutları yerine getirdikten sonra geri çekebilirim , değil mi?
Herhangi bir içgörü hoş karşılanmadan daha fazlası olurdu.
end tellSenaryonun ilkini özledim .