Próbuję uruchomić ten skrypt. Jest to skrypt o nazwie Bash, który ma zająć pewne zmienne, połączyć je i użyć wyniku do wysłania polecenia AppleScript. Ręczne wklejenie ciągu znaków odczytywanego ze zmiennej to_osa
za terminalem działa tak jak chcę i oczekuję tego. Ale kiedy próbuję połączyć polecenie osascript -e
i ciąg to_osa
, to nie działa. Jak mogę to sprawić?Łączenie zmiennych w Bash w celu utworzenia polecenia wysyłanego do AppleScript za pomocą komendy osascript
the_url="\"http://stackoverflow.com/questions/1521462/looping-through-the-content-of-a-file-in-bash\""
the_script='tell application "Safari" to set the URL of the front document to '
delimiter="'"
to_osa=${delimiter}${the_script}${the_url}${delimiter}
echo ${to_osa}
osascript -e ${to_osa}
Oprócz pracy ręcznie skrypt działa także wtedy, gdy piszę żądane polecenie do skryptu, a następnie uruchomić go:
echo "osascript -e" $to_osa > ~/Desktop/outputfile.sh
sh ~/Desktop/outputfile.sh
dlaczego the_url ma wartośćURL? –
Przyzwyczajenie; nazwij to, co chcesz. – foo
A jeśli chcemy, aby Apple srcipt robił skrypt powłoki, który zależy od zmiennych? Na przykład. osascript -e 'wykonaj skrypt powłoki \ "echo $ the_url \"'. – lef