これは私のコードです
curl random args
"link" | jq
そしてそれが与えるもの
{
"id": "961438154596153411",
"username": "testing",
"avatar": "a9000496add364b16af27e2f583a2e1e0f",
"discriminator": "1"
}
"$id"をechoできるようにbash変数として保存してテストするには、961438154596153411またはecho "$username"を指定しますか?
回避策:より良いアプローチは、カール入力を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