Bash

如何讓jq輸出成變數

  • February 18, 2022

這是我的程式碼

curl random args
"link" | jq

並給出它給出的是

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

我將如何將其保存為 bash 變數,這樣我就可以像 echo " $ id" and it gives me 961438154596153411 or echo " $ 使用者名”測試

已解決注意:這樣做的更好方法是將 curl 輸入保存為 json,然後將其與 jq 一起使用,這樣您就不必多次請求內容(對不起,如果這是一個愚蠢的問題,我是 bash 和 jq 的新手)

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

引用自:https://unix.stackexchange.com/questions/691016