Почему простые команды osascript терпят неудачу в OS X Lion? - PullRequest
4 голосов
/ 28 сентября 2011

У меня есть два очень простых сценария OSA, позволяющих входить и выходить из компьютеров в лабораторной среде.Эти сценарии работают безупречно в Snow Leopard, когда они проталкиваются через ARD, в интерактивном режиме в сеансе ssh, но они терпят неудачу на машинах, работающих под управлением Lion.

В упрощенном виде сценарий выхода из системы выглядит так:

osascript -e 'сообщает приложению «Системные события» о выходе из системы'

  • РАБОТАЕТ при запуске непосредственно из интерактивной оболочки на компьютере
  • РАБОТАЕТ при выталкивании из ARD
  • СБОЙ с «ошибкой выполнения: переменная out не определена. (-2753)» при запуске из сеанса ssh
  • РАБОТАЕТ, когда скрипт компилируется в .scpt, затем запускается из ssh (например, «/ usr / bin / osacript logout.scpt ")

Сценарий входа в систему напрямую основан на этом.Сокращенная версия, в которой обнаружена проблема:

osascript -e 'сообщает приложению "Системные события" о нажатии клавиши "frontend"'

  • РАБОТАЕТ при запуске непосредственно из интерактивного сеанса
  • РАБОТАЕТ при выталкивании из ARD
  • СБОЙ с ошибкой выполнения: произошла ошибка типа -10810.(-10810) при запуске из ssh
  • РАБОТАЕТ, когда запускается как скомпилированный scpt и запускается из ssh

Поскольку эти сценарии работают нормально в интерактивном режиме и потому, что они работали нормально во всех режимах вСнежный барс, я думаю, что-то должно было измениться в osascript, но я не знаю, что, и сообщения об ошибках не очень описательны.Любые предложения приветствуются.

1 Ответ

0 голосов
/ 11 марта 2012

Попробуйте избежать кавычек.

Итак: 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\"'

Дайте эторасскажите нам, что происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...