如果我创建一个名为 myscript.js 的 AppleScript 脚本并将其传递给 oascript,它将执行一次 run 函数并将“hello world”写入标准数据输出:
function run(args) {
for (var i=0;i<10;i++) {
// out("number " + i); // execution error: Error on line 18: ReferenceError: Can't find variable: out (-2700)
}
return "hello world"; // written to standard data out
}
但是,如果我想多次写入标准数据,例如在 for 循环中,我该怎么做?
如果我执行以下操作,它会多次写入标准错误并在外部应用程序中调度多个事件:
for (var i=0;i<10;i++) {
console.log("number " + i);
}
唯一的问题是它正在创建错误事件而不是标准数据事件。
在脚本编辑器中,标准数据输出被发送到结果窗口。我想多次打印到结果窗口。
更新:
看起来这可能是不可能的。我在这里找到了这句话:
问:我的脚本会在很长一段时间内产生输出。当他们进来时,我如何阅读结果?
答:同样,简短的回答是你不这样做——在命令完成之前,shell 脚本不会返回。在 Unix 术语中,它不能用于创建管道。但是,您可以做的是将命令置于后台(请参阅下一个问题),将其输出发送到文件,然后在文件填满时读取文件。
另外,请注意,如果我想使用 JavaScript 而不是 AppleScript,我应该使用cocoascript而不是osascript吗?