这是我的代码
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