2012-04-05 116 views
14

2部分的問題:使用AppleScript打開的程序

我只是試圖運行使用AppleScript從終端程序,所以我嘗試:

$ osascript tell application "iTunes" to activate 

並且得到錯誤:

osascript: tell: No such file or directory 

給程序的完整路徑也不起作用。我錯過了什麼?問題的第二部分是我最終希望使用applescript的。我想用它來打開我使用py2app構建的應用程序。可以applescript打開任何mac應用程序或只是某些已經兼容的應用程序。

謝謝

回答

19

試試這個。注意你在編寫命令時使用「-e」。如果沒有「-e」,你會給一個applescript運行的路徑。另請注意,字符串命令必須用引號引起來。

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

如果你有一個多行的AppleScript你喜歡這個每行前使用「-e」 ......

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

如果你想打開一個應用程序只使用Unix的「開放「命令

open "/path/to/application" 

如果你想使用AppleScript打開一個應用程序,並在‘激活’命令不起作用(它應該幾乎所有的工作,雖然)然後告訴查找程序將其打開。請記住,AppleScript的採用逗號分隔的路徑...

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

是否可以告訴被打開,其工作區嗎? – 2015-06-10 09:35:24

5

嘗試:

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

你需要把單引號括起來的訴說:

osascript -e「告訴應用 「iTunes」 的到激活」

當您運行-e

+0

你能指出一些文件在哪裏解釋?通過osascript的手冊頁看,我沒有看到這提到。 – regulus6633 2015-06-28 08:00:34

7

在bash的sh否則你定義一個變量(例如在終端中),您可以通過使用「here document」發送多行到osascript。

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

成爲

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

作爲一個老斯庫爾的Unix黑客,我在$ HOME/bin目錄中保存這些小片段,並在命令行中調用它們。儘管如此,仍然在學習細節。

Alan

1

我也是新手腳本。

我困惑,所以我掃描命名爲AppleScript Language Guide 的文章,當我通過腳本命令的項目,我瞭解到,如果你想與applescript editor以激活mac os的應用程序,你應該在你的編輯器中鍵入下面的代碼,然後編譯並運行它們!可以這樣回答會幫助你,這裏是代碼:

// applescript editor code  

----------  

activate application "iTunes" line 1  

----------  

tell application "iTunes" to activate line 2 
2

替代osascript:

open -a Calendar 

附近:

pkill Calendar 
+0

-a是什麼?你能提供一個解釋嗎? – user1271772 2017-05-23 21:45:40

+0

@ user1271772,閱讀'open' _command_的手冊頁,它會告訴你'-a'的用途! – user3439894 2018-02-11 03:21:46

+0

@ user3439894:這是幹什麼用的? – user1271772 2018-02-11 23:28:59

相關問題