【问题标题】:How do I pipe output from node stdout to open command in Mac terminal?如何将节点标准输出的输出通过管道传输到 Mac 终端中的打开命令?
【发布时间】:2016-01-26 18:15:58
【问题描述】:

我有一个节点项目,我在终端中使用process.stdout.write(filename + '\n'); 将文件名输出到stdout。如何将此输出传送到open 命令或其他命令以使用默认图像查看器打开文件(在本例中为图像)?

【问题讨论】:

  • node some_node_file.js | open -f 据我所知open 等待文件名作为参数,所以这只是 bash 问题。
  • 管道进入open -f 只需在默认文本编辑器中打开输出文本(也就是文件名)。它不会使用默认图像查看器打开图像文件。
  • 如果你想让它打开特定的应用程序,你需要通过-a <appname>。我猜你需要Preview 来获取图片。

标签: node.js macos terminal


【解决方案1】:

正如 Mark Setchell 在 cmets 中指出的那样,您需要通过 -a <appname> 才能使用特定应用程序打开文件。
但是,您需要将文件传输到标准输出,而不仅仅是文件名,例如:

var fs = require('fs');

fs.createReadStream("./test.jpg").pipe(process.stdout);

然后是你的node yourNodeFile.js | open -f -a Preview.app

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多