我想传递一个不带引号的参数(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
output:
{"type":{"description":"Type"}}
请注意 $foo 上的双引号仍然允许 shell 将变量扩展为 .properties。这就是说你可能不安全地使用:jq -r -c $foo sample.json
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)