26

2部分问题:

我只是想从终端使用 applescript 运行程序,所以我尝试了:

$ osascript tell application "iTunes" to activate

并得到错误:

osascript: tell: No such file or directory

提供程序的完整路径也不起作用。我错过了什么?问题的第二部分是我最终想要使用 applescript 的目的。我想用它来打开我使用 py2app 构建的应用程序。applescript 可以打开任何 Mac 应用程序或仅打开某些已经兼容的应用程序。

谢谢

4

6 回答 6

28

尝试这个。请注意,您在编写命令时使用了“-e”。如果没有“-e”,您将给出一个运行 AppleScript 的路径。另请注意,字符串命令必须用引号引起来。

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

如果你有一个多行的applescript,你可以在每一行之前使用“-e”,就像这样......

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

如果你想打开一个应用程序,只需使用 unix "open" 命令...

open "/path/to/application"

如果您想使用 applescript 打开应用程序并且“激活”命令不起作用(尽管它应该适用于几乎所有内容)然后告诉 Finder 打开它。请记住,applescript 使用冒号分隔的路径...

osascript -e "tell application \"Finder\" to open file \"path:to:application\""
于 2012-04-05T07:02:52.283 回答
13

在 bash shell(如终端)中,您可以使用“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 目录中,并从命令行调用它们。不过,仍在学习细节。

艾伦

于 2013-01-12T14:42:45.547 回答
10

osascript 的替代方案:

open -a Calendar

靠近:

pkill Calendar
于 2016-06-15T22:31:21.917 回答
7

尝试:

do shell script "open /Applications/iTunes.app"
于 2012-04-05T19:44:17.367 回答
6

你需要在告诉周围加上单引号:

osascript -e '告诉应用程序“iTunes”激活'

否则你在运行 -e 时定义了一个变量

于 2012-12-31T17:53:35.243 回答
2

我也是脚本新手。

我很困惑,所以我扫描了一篇名为的文章AppleScript Language Guide ,当我浏览脚本命令项时,我了解到如果你想激活一个应用程序mac osapplescript editor你应该在编辑器中输入代码,然后编译并运行它们!也许这个答案会对你有所帮助,这里的代码:

// applescript editor code    

----------    

activate application "iTunes" line 1    

----------    

tell application "iTunes" to activate line 2
于 2013-01-30T12:47:23.477 回答