Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c Osascript-无输出_Objective C_Macos_Cocoa_Terminal_Applescript - Fatal编程技术网

Objective c Osascript-无输出

Objective c Osascript-无输出,objective-c,macos,cocoa,terminal,applescript,Objective C,Macos,Cocoa,Terminal,Applescript,这是我的小测试脚本: do shell script "cd ~/Desktop; ls -l1" set x to the result tell application "Finder" to activate 当我通过脚本编辑器运行它时,它工作正常 当我通过终端尝试同样的事情时,比如osascript myscript.scpt,它根本不起作用-没有任何输出 顺便说一句,我甚至尝试通过Cocoa任务调用它。有一次它工作了,然后它不断返回一个奇怪的类\u NSZombie\u OS\u x

这是我的小测试脚本:

do shell script "cd ~/Desktop; ls -l1"
set x to the result
tell application "Finder" to activate
当我通过脚本编辑器运行它时,它工作正常

当我通过终端尝试同样的事情时,比如
osascript myscript.scpt
,它根本不起作用-没有任何输出

顺便说一句,我甚至尝试通过Cocoa任务调用它。有一次它工作了,然后它不断返回一个奇怪的
类\u NSZombie\u OS\u xpc\u数据在这两者中都实现了??还有??。将使用其中一个。哪一个未定义。
错误消息(
osascript
未定义)

发生什么事了



p.S.我不知道这是否相关,但在终端中尝试
top
后,我注意到一个运行
osascript
的实例(?),尽管杀死它也没有任何好处…

当您使用
osascript
命令时,您只得到最后一个AppleScript命令的结果

因此,最后一个命令是
告诉应用程序“Finder”激活
,此命令不返回任何内容

要获取
do shell脚本
命令的结果,请使用以下命令:

set x to do shell script "cd ~/Desktop; ls -l1"
tell application "Finder" to activate
return x

好的,自从我第一次发布这个问题以来,我已经取得了很大的进步。让我这样说:除了使用
AEDebugReceives=1
,还有其他方法从
osascript
(不是最终结果)获取中间事件/回复吗?您可以返回许多包含文本或数字的变量,如下所示:
return var1&linefeed&var2&linefeed&var3
,否则,我不知道还有什么其他方法。如果您运行上面相同的脚本(不返回任何内容),您会注意到它还输出中间事件(在“事件”和“回复”下)制表符。获取此输出的一种方法是在终端中设置
export-AEDebugReceives=1
,重新启动Finder并按正常方式重新执行脚本!(例如
osascript-yourscript.scpt
)试试;-)我在Mavericks上试试,我有这个
aevt('aevt'\'ansr'transactionID=0 returnID=9873 sourcePSN=[0x064064“Finder”]timeout=0 eventSource=3 sourceUID=501 sourceGID=20 sourceEUID=501 sourceGID=20 sourcePID=1044 auditToken=[501501,20501,2010441000041044]{})
?就那个我的意思是它打印出了类似的东西,但只是在最后。在此之前,中间事件(我指的是桌面内容)打印得很好。(P.S.约塞米蒂,但我看不出这会对它产生什么影响……苹果历来非常……喜欢苹果的活动lol)