gpt4 book ai didi

bash - jq解析中如何使用环境变量参数

转载 作者:行者123 更新时间:2023-12-02 03:34:07 26 4
gpt4 key购买 nike

在下面的 bash 代码中,我得到的是 null 作为值而不是实际值。我在 Linux 操作系统中使用 jq 1.5

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
}

现在根据需要使用参数进行调用

getProperty "first.name"
"Adam"
getProperty "last.name"
"Eve"

关于bash - jq解析中如何使用环境变量参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50849591/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com