【问题标题】:how to pass shell variable to jq filter如何将shell变量传递给jq过滤器
【发布时间】:2017-11-08 08:39:44
【问题描述】:

我尝试以这种方式传递一个 shell 变量:

jq -r --arg NEWGROUP "$NEWGROUP" '.[] | select(.name | contains("$NEWGROUP") ) | .id'

但它不起作用。

当我在 contains() 中明确指定组名时,它会起作用。 我是不是做错了什么?

【问题讨论】:

    标签: shell variables jq


    【解决方案1】:

    我做错了吗?

    是的,在 jq 程序中,您已经引用了您想要成为 jq 变量的内容,从而将其转换为 JSON 字符串。只需删除引号,让 $-string 成为 $-variable。

    附言你可能应该避免contains,它有奇怪的语义。根据您的 jq,可以考虑的替代方案包括 indextest

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-25
      • 2016-04-17
      • 2017-02-22
      • 1970-01-01
      相关资源
      最近更新 更多