为什么OS X Lion中的简单osascript命令失败?

时间:2011-09-28 18:14:50

标签: macos applescript

我有两个非常简单的OSA脚本,允许在实验室环境中登录和注销计算机。这些脚本在通过ARD推送时在Snow Leopard中完美运行,在ssh会话中以交互方式运行,但它们在运行Lion的计算机上失败。

根据其要点,注销脚本如下所示:

osascript -e'告诉应用程序“系统事件”注销'

  • 直接从计算机上的交互式shell运行时的工作
  • 从ARD推送时的工作
  • FAILS“执行错误:从ssh会话运行时未定义变量out。(-2753)”
  • 当脚本编译为.scpt时运行,然后从ssh运行(例如“/ usr / bin / osacript logout.scpt”)

登录脚本直接基于此。展示问题的精简版本是:

osascript -e'告诉应用程序“系统事件”按键“frontend”'

  • 直接从交互式会话中运行时的工作
  • 从ARD推送时的工作
  • 执行错误的FAILS:发生了类型-10810的错误。 (-10810)从ssh
  • 运行时
  • 以编译的scpt运行并从ssh
  • 运行时工作

因为这些脚本可以交互式地工作,并且因为它们在Snow Leopard的所有模式下都能正常工作,所以我认为osascript中必须有一些改变,但我不知道是什么,并且错误消息不是很具描述性。任何建议都会受到欢迎。

1 个答案:

答案 0 :(得分:0)

尝试转义引号。

所以: osascript -e 'tell application "System Events" to log out' 变为: osascript -e 'tell application \"System Events\" to log out'

osascript -e 'tell application "System Events" to keystroke "frontend"' 变为: osascript -e 'tell application \"System Events\" to keystroke \"frontend\"'

试一试,告诉我们会发生什么。