• shell 输出json格式的内容


    对于shell脚本的输出,如果要输出json格式的内容,我们可以借助python -m json.tool命令
    比如
    echo '{"name":"zhangsan", "age":"18"}' | python -m json.tool

     
     

    首先,大括号外面必须有单引号'',因为在shell里面大括号{}不用单引号引起来就相当于一个匿名函数,
    不加单引号就等价去echo 输出 {"name":"zhangsan", "age":"18"}这个匿名函数的返回值。
    其次,大括号里面的字符串,必须用"" 双引号,不能用''单引号,否则会报错。

    当大括号中带有变量时该怎么输出呢?
    echo 后面的内容已经被''单引号引起来了,shell自身已经不可能再去解析变量了,那么只能我们职级手动去解析,这时候就想到eval命令,eval的一个功能就是将自己的参数变量进行展开,具体关于eval的命令,自行网上搜索吧,下面直接给出答案。
    echo $(eval echo '{"name":"zhangsan", "age":""$age""}') | python -m json.tool


     
     

    注意,第一个echo不是必须的,所以也可以是eval echo '{"name":"zhangsan", "age":""$age""}' | python -m json.tool。但是大括号里面的""双引号必须用反斜杠标注出来,因为eval在进行变量展开的时候,会将大括号中的""解析掉,当不加反斜杠时,输出就变成了


     
     

    而对于python -m json.tool, ""双引号是必须的。 所以大括号里面的""双引号必须用反斜杠标注出来。



  • 相关阅读:
    单例设计模式
    C#做窗体皮肤
    常用的数组的操作
    C#调试方法
    Timer
    程序对对象的字段的代码简写
    nginx upstream的几种配置方式
    ava如何实现系统监控、系统信息收集、sigar开源API的学习(转)
    vsftpd 被动模式与主动模式
    MySQL安装详解(V5.5 For Windows)
  • 原文地址:https://www.cnblogs.com/lgj8/p/12325488.html
Copyright © 2020-2023  润新知