小编use*_*929的帖子

使用jq传递的数字参数--arg与==的数据不匹配

以下是我的curl的示例JSON响应:

{
  "success": true,
  "message": "jobStatus",
  "jobStatus": [
    {
      "ID": 9,
      "status": "Successful"
    },
    {
      "ID": 2,
      "status": "Successful"
    },
   {
      "ID": 99,
      "status": "Failed"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我想检查ID = 2的状态.这是我试过的命令:

cat test.txt|jq --arg v "2" '.jobStatus[]|select(.ID == $v)|.status'
Run Code Online (Sandbox Code Playgroud)

回复:没有

我试着2没有引号的价值但仍然没有结果.

相比之下,如果我尝试使用文字 的命令2,它的工作原理:

cat test.txt | jq '.jobStatus[]|select(.ID == 2)|.status'
Run Code Online (Sandbox Code Playgroud)

响应:

"Successful"
Run Code Online (Sandbox Code Playgroud)

我被卡住了.任何人都可以帮我识别问题吗?

bash json parameter-passing jq

5
推荐指数
2
解决办法
1331
查看次数

标签 统计

bash ×1

jq ×1

json ×1

parameter-passing ×1