我在jsonFile有一个json商店
{
"key1": "aaaa bbbbb",
"key2": "cccc ddddd"
}
Run Code Online (Sandbox Code Playgroud)
我有代码mycode.sh
:
#!/bin/bash
value=($(jq -r '.key1' jsonFile))
echo "$value"
Run Code Online (Sandbox Code Playgroud)
我运行./mycode.sh
结果后,aaaa
但如果我只是运行jq -r '.key1' jsonFile
结果是aaaa bbbbb
谁能帮助我?
Sau*_*ier 21
有了这行代码
value=($(jq -r '.key1' jsonFile))
Run Code Online (Sandbox Code Playgroud)
您要将两个值分配给数组.请注意()
命令周围的外部parantheses .因此,您可以单独访问值或回显整个数组的内容.
$ echo "${value[@]}"
aaaa bbbb
$ echo "${value[0]}"
aaaa
$ echo "${value[1]}"
bbbb
Run Code Online (Sandbox Code Playgroud)
由于您$value
没有指定要获取的值而回显,因此只获取数组的第一个值.
小智 10
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})
Run Code Online (Sandbox Code Playgroud)
上面的代码是从 json 响应获取值的另一种方法。