gpt4 book ai didi

jq:传递不带引号的字符串参数

转载 作者:行者123 更新时间:2023-12-02 19:18:07 29 4
gpt4 key购买 nike

我想传递一个不带引号的参数(JQ arg 默认情况下有双引号),因为它应该用作过滤器。例如

propt='.properties'
final=($(jq -r -c --arg p $propt '$p' sample.json))
echo $final

示例.json

{
"type": "object",
"description": "Contains information",
"properties": {
"type": {
"description": "Type"
}
}
}

所以最终它打印出 .properties 而不是预期的 {"type":{"description":"Type"}}为此,我使用 bash shell。

请让我知道我做错了什么。

最佳答案

如果我理解正确的话,您会因为认为需要在 jq 中设置一个变量而不是仅仅让 shell 进行扩展而偏离了方向:

% foo='.properties'
% jq -r -c "$foo" sample.json

输出:

{"type":{"description":"Type"}}

请注意 $foo 上的双引号仍然允许 shell 将变量扩展为 .properties。也就是说,您可以不安全地使用:jq -r -c $foo example.json

关于jq:传递不带引号的字符串参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52173556/

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