Вот мой маленький тестовый скрипт:Osascript - Нет выхода
do shell script "cd ~/Desktop; ls -l1"
set x to the result
tell application "Finder" to activate
Когда я бегу это с помощью редактора сценариев, он отлично работает.
Когда я пытаюсь сделать то же самое через терминал, например osascript myscript.scpt
, он вообще не работает - никакого выхода вообще нет.
Btw, я пробовал даже использовать его с помощью NSTask Cocoa. Один раз он работал, а затем он возвращал странное сообщение об ошибке Class _NSZombie_OS_xpc_data is implemented in both ?? and ??. One of the two will be used. Which one is undefined.
(osascript
не Cocoa).
Что происходит?
P.S. я не знаю, что ли отношение вообще, но после попытки top
в терминале я заметил экземпляр osascript
работает (?!), хотя убийство его не делать ничего хорошего либо ...
ОК, так как я сделал большой прогресс, так как я первый отвечал на этот вопрос. Позвольте мне сказать так: есть ли другой способ получить промежуточные события/ответы из 'osascript' (НЕ конечный результат), кроме использования' AEDebugReceives = 1'? –
Вы можете вернуть много переменных, которые содержат текст или цифры следующим образом: 'return var1 & linefeed & var2 & linefeed & var3', иначе я не знаю другого способа. – jackjr300
Если вы запустите тот же самый сценарий выше (не возвращая ничего), вы заметите, что он также выводит промежуточные события (под вкладками «события» и «ответы». Один из способов получить этот вывод - установить «export AEDebugReceives = 1 'в терминале, перезапустите Finder и перезапустите скрипт, как обычно, (например,' osascript yourscript.scpt') Попробуйте это ;-) –