繁体   English   中英

在外壳程序脚本中使用jq

[英]using jq within a shell script

怀疑这是我正在犯的新手错误,但试图解析json,例如

{"current_observation": {"observation_time": "Last Updated on July 4, 12:53 PM CDT" } }

从诸如

#!/bin/sh

jq '.' test.json

我从./test.sh收到错误响应,如下所示

syntax error, unexpected INVALID_CHARACTER, expecting $end '.'1 compile error

现在,如果我做一个jq'。 从终端中的命令行运行test.json,它按预期执行,但是尝试在脚本中使用它时,失败的原因如详述。

有人能指出我的错误吗?

我可以使用以下脚本重现您的错误:

#!/bin/sh   
jq \'.\' test.json

我认为您只需要删除。中的引号即可. 尽管对我来说,使用转义的引号可以很好地工作。

像这样尝试:

#!/bin/sh   
jq . test.json

可能与此jq的错误报告有关。 (尽管可能不行,因为它在命令行上对您有用)

逗号产生错误。 您应该引用它:

{"current_observation": {"observation_time": "Last Updated on July 4\u002c 12:53 PM CDT" } }

测试:

$ jq '.' temp.txt 
{
  "current_observation": {
    "observation_time": "Last Updated on July 4, 12:53 PM CDT"
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM