簡體   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