如何将jq输出变成变量

如何将jq输出变成变量

这是我的代码

curl random args
"link" | jq

并给出它给出的是

{
  "id": "961438154596153411",
  "username": "testing",
  "avatar": "a9000496add364b16af27e2f583a2e1e0f",
  "discriminator": "1"
}

我如何将其保存为 bash 变量,这样我就可以像 echo "$id" 一样,它给我 961438154596153411 或 echo "$username" 测试

已解决注意:更好的方法是将curl输入保存为json,然后将其与jq一起使用,这样你就不必多次请求东西(抱歉,如果这是一个愚蠢的问题,我是bash和jq的新手)

答案1

961438154596153411要从 json 中提取,请通过管道输入文件jq '.id'

例子:

$ jq '.id' << EOF
{
  "id": "961438154596153411",
  "username": "testing",
  "avatar": "a9000496add364b16af27e2f583a2e1e0f",
  "discriminator": "1"
}
EOF

输出

"961438154596153411"

如果您希望不带引号,请使用-r原始数据。

总之,为了将该数字放入 bash 变量中,我会这样做:

$ id=$(curl random args "link" | jq -r ".id")
$ echo "$id"
961438154596153411

相关内容