2012-04-05 19 views
14

2 część pytanie:otwarte programy z AppleScript

Ja po prostu próbuje uruchomić programów za pomocą AppleScript od terminalu, więc próbowałem:

$ osascript tell application "iTunes" to activate 

i pojawia się błąd:

osascript: tell: No such file or directory 

Podanie pełnej ścieżki do programu również nie działa. czego mi brakuje? Druga część pytania dotyczy tego, do czego ostatecznie chciałbym użyć applescript. Chciałbym go użyć do otwarcia aplikacji, którą zbudowałem przy użyciu py2app. Czy applecript może otworzyć dowolną aplikację mac lub tylko niektóre, które są już kompatybilne.

Dzięki

Odpowiedz

19

Spróbuj tego. Zwróć uwagę, że używasz "-e" podczas pisania polecenia. Bez "-e" dałbyś ścieżkę do skryptu jabłkowego do uruchomienia. Zauważ również, że polecenie string musi być w cudzysłowach.

osascript -e "tell application \"iTunes\" to activate" 

A jeśli masz multi-linia applescript przed każdym wierszu jak to użyć „-e” ...

osascript -e "tell application \"iTunes\"" -e "activate" -e "end tell" 

Jeśli chcesz otworzyć aplikację wystarczy użyć UNIX „otwarty "polecenia ...

open "/path/to/application" 

Jeśli chciał otworzyć aplikację za pomocą AppleScript i«aktywować»komenda nie działa (powinno działać na prawie wszystko, chociaż) wtedy powiedzieć Finder, aby go otworzyć. Pamiętaj, że applescript zastosowania lista_szyfrów ścieżki ...

osascript -e "tell application \"Finder\" to open file \"path:to:application\"" 
+0

Czy można powiedzieć, który roboczy być otwarty? –

5

Spróbuj:

do shell script "open /Applications/iTunes.app" 
4

trzeba umieścić apostrofów wokół Tell:

osascript -E „mówią APP "iTunes" do aktywować”

inaczej jesteś definiowania zmiennej po uruchomieniu -e

+0

Czy możesz wskazać na jakąś dokumentację, w której jest to wyjaśnione? Przeglądając stronę podręcznika dla osascript, nie widzę tego. – regulus6633

7

W sh bash ell (jak w Terminalu), możesz wysłać wiele linii do osascript używając "tutaj dokumentu".

osascript -e "tell application \"iTunes\"" -e "activate" -e "end tell" 

staje

osascript <<EOF 
tell application "iTunes" 
    activate 
end tell 
EOF 

jako stary-skool Unix hakera, zapisać te małe fragmenty w moim $ HOME/bin i nazywają je z wiersza poleceń. Wciąż jednak poznajemy szczegóły.

Alan

1

Jestem również nowy w pisaniu skryptów.

jestem mylić więc skanować esej o nazwie AppleScript Language Guide i kiedy przejść przez skrypt poleceń przedmioty, uczę się, że jeśli chcesz, aby aktywować aplikację w mac os z applescript editor należy wpisać poniżej kod w edytorze, a następnie skompilować i je uruchomić!może ta odpowiedź pomoże, oto kod:

// applescript editor code  

----------  

activate application "iTunes" line 1  

----------  

tell application "iTunes" to activate line 2 
2

alternatywą osascript:

open -a Calendar 

pobliżu:

pkill Calendar 
+0

Do czego służy znak -a? Czy możesz podać wyjaśnienie? – user1271772

+0

@ user1271772, Odczytaj stronę podręcznika 'open' _command_, powie Ci, do czego służy' -a'! – user3439894

+0

@ user3439894: Do czego służy? – user1271772