首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jq --arg传递的变量select()没有硬编码值就不能工作吗?

jq --arg传递的变量select()没有硬编码值就不能工作吗?
EN

Stack Overflow用户
提问于 2020-08-16 08:14:30
回答 2查看 296关注 0票数 1

您好,我正在尝试将变量传递给jq,但是我不明白为什么一些--arg变量可以工作,而另一些不能。

代码语言:javascript
运行
复制
jq --version
jq-1.6

该示例不适用于.Value <=$v,而是返回所有大于10的.Values,而不是预期的小于或等于10

代码语言:javascript
运行
复制
h=hostname
ip=ipaddress
value=10
jq -r --arg i $ip --arg host $h --arg v $value 'select(.Value <=$v and .ClientRequestHost == $host and .ClientIP == $i)' file.json

如果.Value在select()中硬编码为10 .Value <=10,并过滤.Value小于或等于10的输出,则工作

代码语言:javascript
运行
复制
h=hostname
ip=ipaddress
value=10
jq -r --arg i $ip --arg host $h --arg v $value 'select(.Value <=10 and .ClientRequestHost == $host and .ClientIP == $i)' file.json

在这两个示例中,传递给jq select的$h和$i的变量是否起作用,只是$v的变量不起作用?

EN

Stack Overflow用户

发布于 2020-08-16 08:27:01

我的答案是--arg传递的变量是字符串,而不是被解释为数字https://stackoverflow.com/a/41773407/272648,所以需要进行转换

代码语言:javascript
运行
复制
jq -r --arg i $ip --arg host $h --arg v $value 'select(.Value <=($v | tonumber) and .ClientRequestHost == $host and .ClientIP == $i)' file.json
票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63431948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档