Состояние выхода AppleScript Runner передается обратно в сценарий оболочки - PullRequest
4 голосов
/ 11 апреля 2011

Мне нужно иметь возможность запускать AppleScript в сценарии оболочки.Я использую «AppleScript Runner», чтобы работать в интерактивном режиме, чтобы диалоги и т. Д. Поддерживались.У меня это работает, но мне нужно вернуть статус оболочки приложения AppleScript Runner обратно в оболочку, чтобы я мог видеть, были ли какие-либо ошибки в сценарии.

Вот мой сценарий оболочки:

output=$(/usr/bin/osascript << EOT
tell application "AppleScript Runner"
do script "somescript.scpt"
end
EOT)

status=$?

Здесь моя переменная $ status заканчивается только состоянием завершения команды osascript (равным 0 независимо от того, действительно ли somescript.scpt был запущен успешно), а не состоянием выхода приложения AppleScript.Бегун.

Кто-нибудь знает, как мне это сделать?

Спасибо!

1 Ответ

2 голосов
/ 11 апреля 2011

Флаг -e выводит ошибки в stderr и используется по умолчанию.Поэтому вам просто нужно прочитать stderr.

Этот ответ может помочь вам, если вы не знакомы с этим:

захватить переменную bash stderr и stdout отдельно или получить значение выхода

РЕДАКТИРОВАТЬ: Добавлен образец кода.

error=`osascript -e 'tell app "Finder" to adtivate' 2>&1`
echo $error

Выше в моей системе фиксируются сообщения об ошибках.

...