【发布时间】:2018-03-06 07:26:03
【问题描述】:
这是一个名为 test.json 的 json 文件,用于测试
{
"name": "Google",
"location": {
"street": "1600 Amphitheatre Parkway",
"city": "Mountain View",
"state": "California",
"country": "US"
},
"employees": [
{
"name": "Michael",
"division": "Engineering"
},
{
"name": "Laura",
"division": "HR"
},
{
"name": "Elise",
"division": "Marketing * test"
}
]
}
如果我使用jq 代码来解析它,如下所示:
cat test.json | jq -r '.employees[2].division'
它会很好地工作并给出正确的结果:
Marketing * test
但我用$(),坏事会发生!
echo $(cat test.json | jq -r '.employees[2].division')
结果将列出当前文件夹下的所有文件名!喜欢:
my1.json my2.json test.json test ...
我猜是 $() 运行星号 * 作为一个 shell 脚本,但是一个字符串。
那么当我使用jq 时,如何在 json 文件中将星号 (*) 制作为字符串?我正在使用谷歌云平台和 Ubuntu 17.10
【问题讨论】: