几年前作者写了一篇关于将 Unix 哲学带入 21 世纪的有争议文章,为 CLI 工具添加了 JSON 输出选项,方便脚本解析。这引发争议,有人认为为每个任务编写定制解析器没什么,也有人认为 JSON 不好。现在越来越多命令行应用提供 JSON 输出选项,作者开发的jc
能从旧命令行应用获取 JSON 输出。
- 结构化输出支持增加:许多新命令行应用提供结构化输出选项,一些旧应用也在添加,如
nvidia-smi
、ffprobe
、docker CLI
、tree
、ip
等,作者为iostat
命令开发了标准和流式解析器,发现 11 版及以上有 JSON 输出选项。 JSON 输出注意事项:
- 做:生成 JSON 输出时遵循一些最佳实践,如制作模式文档方便用户知道属性位置和类型,扁平化结构方便获取值,输出 JSON 行用于流式输出,使用可预测的键名,使用两个空格缩进或不格式化,不使用特殊字符、不允许重复键、不使用极大数字等。
- 不做:避免使用特殊字符在键名中,不允许重复键,不使用极大数字,不使用 XML(只是开玩笑,认为 JSON 更优)。
- 总结:要为终端用户考虑,遵循上述步骤可让用户更方便获取数据,这不是详尽列表,欢迎在评论中提出意见。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。