我在 jsonFile 中有一个 json 存储
{
"key1": "aaaa bbbbb",
"key2": "cccc ddddd"
}
我有代码mycode.sh
:
#!/bin/bash
value=($(jq -r '.key1' jsonFile))
echo "$value"
在我运行./mycode.sh
结果之后,aaaa
但如果我只是运行jq -r '.key1' jsonFile
结果是aaaa bbbbb
有人可以帮我吗?
用那行代码
value=($(jq -r '.key1' jsonFile))
您将两个值都分配给一个数组。()
注意命令周围的外部括号。因此,您可以单独访问这些值或回显整个数组的内容。
$ echo "${value[@]}"
aaaa bbbb
$ echo "${value[0]}"
aaaa
$ echo "${value[1]}"
bbbb
由于您在$value
没有指定要获取哪个值的情况下进行了回显,因此您只能获得数组的第一个值。
local result=$(<your_json_response>)
local aws_access_key=$(jq -r '.Credentials.AccessKeyId' <<< ${result})
local aws_secret_key=$(jq -r '.Credentials.SecretAccessKey' <<< ${result})
local session_token=$(jq -r '.Credentials.SessionToken' <<< ${result})
上面的代码是另一种从 json 响应中获取值的方法。