大括号里面的字符串
对付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, ""双引号是必需的。 所以大括号里面的""双引号必需用反斜杠\标注出来。
shell 输出json格局的内容
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/29973.html