嗨,我有一个 shell 脚本, shell 脚本有一个名为 RESPONSE 的变量
我想要检查 json 对象是否存在名为“address”的属性。还有如何获取属性地址的值。我想使用jq库
#!/bin/bash
RESPONSE={"content-length":"2","address":"192.168.123.1","path":"/hello-world"}
感谢任何帮助
jq '.address'
将输出属性 value
的值,例如"192.168.123.1"
。 (jq -r
去掉引号)jq 'has("address")'
将输出 true
/false
jq -e 'has("address")' > /dev/null
将根据具有键“address”的对象(无论值如何)将进程的退出状态设置为 0
/1
值(除了
jq -e '.address' > /dev/null
或
0
之外的任何值),null
会将进程的退出状态设置为 false
。 null
或 false
值属性会将退出代码设置为 1
。拥有适当的退出状态可以让您执行以下操作:
if jq -e '.address' > /dev/null; then
echo 'object has address field'
fi
# or:
jq -e 'has("address")' > /dev/null || echo 'object does not have an address'