我编写了一个简单的 jsonview
脚本来查看 JSON 文件:
#!/bin/bash
tmp_file=/tmp/jsonview.json
cat "${@}" | python -m json.tool > $tmp_file
[[ -f $tmp_file ]] && vim $tmp_file
我不使用less
,因为我需要语法高亮显示。
那个无用的cat ${@} | ...
是为了让脚本可以用作过滤器:
jsonview t.json
并且:
cat t.json | jsonview
如果像第二种情况那样使用
jsonview
- 即使 vim 不是在管道上而是在具体文件上调用,我仍然会收到这个主题中的警告。我可以查看 json 文件,但退出后,终端会出现混乱。为什么会有这个警告?为什么 vim 认为它从管道中读取数据?
"${@}"
的扩展,以使其对带有空格的参数安全。而 vim 并不是说它正在从一个不是终端的地方 读取,只是标准输入不是终端,而是管道。 - Etan Reisner