如何创建输出结构化的外部命令?

How to create an external command whose output is structured?

提问人:Artem Ilyumzhinov 提问时间:11/4/2023 更新时间:11/4/2023 访问量:35

问:

如何在另一个程序(例如 JavaScript、C)中编写命令,以生成结构化数据输出,就像用该语言编写的脚本一样?nu

我阅读了文档,发现 nushell 对自己的命令使用内部类型,并且与外部命令的通信是通过转换为 UTF-8 字符串 1 来完成的。

我对这些信息不满意,因为我相信应该可以编写一个命令,该命令以 nushell 理解为其内部类型的格式生成输出。

终端 命令行界面 nushell的

评论


答:

0赞 pmf 11/4/2023 #1

如果你正在编写一个外部工具,输出的数据将在Nushell中或与Nushell一起进一步处理,我建议你仍然使用Nu本身理解的标准化格式之一作为你的中介协议或交换格式。这是合理的,因为:

  • 这些格式可以很容易地转换为 Nu 的内部表示(转换器已经存在,请参阅子命令from)
  • 它们被广泛使用,有据可查,并且很可能您的工具编写的其他语言已经提供了一些库或其他使用它们导出数据的方法
  • 您不必不断监控输出逻辑,然后根据 Nu 内部表示的可能开发更改调整输出逻辑,因为 Nu 开发人员会相应地为您调整上述转换器

评论

0赞 Artem Ilyumzhinov 11/6/2023
谢谢你的回答,这也是我最初的想法。但是,这意味着额外转换为中间格式会对性能造成一些影响。那么我的问题是,哪种格式最适合流输出,nushell 能够处理吗?