对于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格式的内容的更多相关文章

  1. PHP、Java输出json格式数据

      PHP 输出json. $result = mysql_query($sql); //查询结果 $users=array(); $i=0; while($row=mysql_fetch_array ...

  2. 在JSP页面中输出JSON格式数据

    JSON-taglib是一套使在JSP页面中输出JSON格式数据的标签库. JSON-taglib主页: http://json-taglib.sourceforge.net/index.html J ...

  3. python json.dumps()函数输出json格式,使用indent参数对json数据格式化输出

    在python中,要输出json格式,需要对json数据进行编码,要用到函数:json.dumps json.dumps() :是对数据进行编码 #coding=gbkimport json dict ...

  4. WCF兼容WebAPI输出Json格式数据,从此WCF一举两得

    问题起源: 很多时候为了业务层调用(后台代码),一些公共服务就独立成了WCF,使用起来非常方便,添加服务引用,然后简单配置就可以调用了. 如果这个时候Web站点页面需要调用怎么办呢? 复杂的XML , ...

  5. php直接输出json格式

    php直接输出json格式,很多新手有一个误区,以为用echo json_encode($data);这样就是输出json数据了,没错这样输出文本是json格式文本而不是json数据,正确的写法是应该 ...

  6. Shell 输出第五行的内容

    目录 Shell 输出第五行的内容 题目 题解-awk 题解-sed Shell 输出第五行的内容 题目 写一个 bash脚本以输出一个文本文件 nowcoder.txt 中第5行的内容. 示例: 假 ...

  7. Maven项目配置Logback输出JSON格式日志

    最近,项目提出需求,日志需要固定输出为JSON格式,以便后端Flink程序解析. 项目背景 项目为简单的Maven项目,日志由Filebeat采集,因此不需要配置输出至Logstash. 下面为pom ...

  8. elk-nginx输出json格式的日志

    把Nginx日志的格式输出成JSON格式展示在Kibana面板,生产环境中基本都是这么使用. 1, 配置nginx 主要修改nginx的访问日志格式,这里定义成json格式,以便后面logstash更 ...

  9. ASP.NET Hashtable输出JSON格式数据

    最近在开发Windows8 Metro App,使用JavaScript和HTML开发环境.所以操作数据绑定都是使用JSON格式数据.后台使用的是ASP.NET,因为项目相对较小,所有后台没有使用数据 ...

随机推荐

  1. Python实用笔记 (7)高级特性——切片

    列表L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'] 取前3个元素 >>> L[0:3] ['Michael', 'Sarah', ' ...

  2. vue全家桶(2.6)

    3.9.滚动行为 设置滚动行为的作用是导航到新路由时,让页面滚动到你想要的位置. const router = new VueRouter({ routes: [...], scrollBehavio ...

  3. Java基础之Synchronized原理

    思维导图svg: https://note.youdao.com/ynoteshare1/index.html?id=eb05fdceddd07759b8b82c5b9094021a&type ...

  4. 07 . Kubernetes之Service

    kubernetes有三种网络 1. Node Network 2. Pod Network 3. Cluster Network Service-网络代理模式 **userspce: 1.1- ** ...

  5. Oracle Solaris 11.4安装桌面/gdb

    文章目录 1. 说明 2. 挂载镜像 3. 安装桌面 4. 安装gdb 5. 重启OS 1. 说明 该文承接上文Solaris 11.4安装,映像包管理系统(IPS)搭建. Solaris 11.4的 ...

  6. css实现div多边框_box-shadow模拟多边框、outline描边实现

    在css3中我们知道可以使用box-shadow属性轻松的为元素添加阴影效果,并且可以设置多组效果,每组参数值用逗号隔开.如果把box-shadow特性的两个偏移量 h-shadow .v-shado ...

  7. 从浏览器地址栏输入url到显示页面的步骤(以HTTP为例)

    在浏览器地址栏输入URL 浏览器查看缓存,如果请求资源在缓存中并且新鲜,跳转到转码步骤 如果资源未缓存,发起新请求 如果已缓存,检验是否足够新鲜,足够新鲜直接提供给客户端,否则与服务器进行验证. 检验 ...

  8. yml配置基本使用

    1.yml 基本知识 1.1 常识 基本结构 k: v 的结构 注意:冒号和v之间必须有空格,否则会出现问题: 大小写敏感 1.2 v 多种写法 看一下下面的这个例子: # rabbitmq 初始化配 ...

  9. 赞!7000 字学习笔记,一天搞定 MySQL

    MySQL数据库简介 MySQL近两年一直稳居第二,随时有可能超过Oracle计晋升为第一名,因为MySQL的性能一直在被优化,同时安全机制也是逐渐成熟,更重要的是开源免费的. MySQL是一种关系数 ...

  10. Bash的特性

    Bash的特性 1. tab补全 #命令补全 [root@clf ~]# user  #命令补全useradd     userdel     usermod     usernetctl  user ...