在下面的bash代码中,我将null作为值而不是实际值。我jq 1.5
在Linux OS中使用。
getProperty(){
export PROP=$1
export value_found=`cat my.json | jq '."env.PROP"'`
echo "$1 = $value_found"
}
getProperty "first.name"
getProperty "last.name"
内容 my.json
{"first.name":"Adam", "last.name":"Eve"}
我的程序需要获取随机选择的属性的值,因此在运行时之前不知道属性名称(因此,尝试使用参数的原因)
你的想法是对的,但你并不需要导出变量/在这里使用的环境变量。只需传入参数并使用内部jq
逻辑从shell导入变量即可。
此处的关键是访问包含的参数.
,将其包装[]
getProperty(){
jq --arg namearg "$1" '.[$namearg]' < json
}
然后根据需要使用args进行调用
getProperty "first.name"
"Adam"
getProperty "last.name"
"Eve"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句