这是我的小测试脚本:
do shell script "cd ~/Desktop; ls -l1"
set x to the result
tell application "Finder" to activate
当我通过脚本编辑器运行它时,它工作正常。
当我通过终端尝试相同的操作时,例如 osascript myscript.scpt
,它根本不起作用 - 没有任何输出。
顺便说一句,我什至尝试过通过 Cocoa NSTask 调用它。有一次它工作了,然后它不断返回一个奇怪的 Class _NSZombie_OS_xpc_data 在两者中都实现了?和 ??。将使用两者之一。哪一个未定义。
错误消息(osascript
不是 Cocoa)。
发生什么事了?
<小时/>P.S. 我不知道这是否相关,但在终端中尝试 top
后,我注意到一个 osascript
的实例运行(?!),虽然杀死它也没有任何好处......
最佳答案
当您使用osascript
命令时,您只能得到最后一个AppleScript命令的结果。
所以,最后一个命令是告诉应用程序“Finder”激活
,该命令不返回任何内容。
要获取 do shell script
命令的结果,请使用:
set x to do shell script "cd ~/Desktop; ls -l1"
tell application "Finder" to activate
return x
关于objective-c - Osascript - 无输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26814476/