将bash shell变量传递给jq过滤器 [英] Passing bash shell variable to jq filter

查看:525
本文介绍了将bash shell变量传递给jq过滤器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

试图将bash shell变量传递到jq过滤器中

Trying to pass a bash shell variable into a jq filter

JSON:

{
"server1": {
"port": 3333,
"name": "foo",
"timesincelast": 248054
},
"server2": {
"port": 4444,
"name": "bar",
"timesincelast": 248054
  }
  }

尝试执行的Bash命令:

Bash command trying to execute:

 servername='server1'
 jq --arg servername "$servername" '.$servername .port'

但是遇到错误

 jq: error: syntax error, unexpected '$' (Unix shell quoting issues?) at 
<top-level>, line 1:

但是直接替换有效

jq '.server1 .port'

推荐答案

您可以这样写:

.[$servername] | .port

或简单地:

.[$servername].port

这篇关于将bash shell变量传递给jq过滤器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆