objective-c - Osascript - 无输出

标签 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 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/

相关文章:

macos - Virtualbox/Vagrant 共享文件夹 : case sensitivity issue on OS X and Linux

iphone - 如何使用音频队列服务播放下一个文件

swift - 如何修复带有无效签名的dylib?

ios - 将 Swift 内部函数暴露给 Objective-C 文件(在框架中)而不公开

objective-c - exportAsynchronouslyWithCompletionHandler : is not working

java - 如何在 Mirth 中部署具有 HTTP 发送器连接器类型的 channel 作为目标?

macos - 如何将行从 NSOutlineView 拖动到 NSTableview

objective-c - 迪尔德 : Library not loaded when trying to run Fortran executable from Objective-C using NSTask

objective-c - 为什么我的简单 objective-c 桥接头无法找到文件 "BraintreeCore.h"?

iphone - 实例化其他 View Controller 时出错