如何将shell变量传递给jq过滤器

时间:2017-11-08 08:39:44

标签: shell variables jq

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

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

但它不起作用。

当我在contains()中明确指定组名时,它可以正常工作。 我做错了什么?

1 个答案:

答案 0 :(得分:2)

  我做错了吗?

是的,在jq程序中,你引用了你想要的jq变量,从而把它变成了一个JSON字符串。只需删除引号,让$ -string为$ -variable。

P.S。您可能应该避免contains,它具有奇怪的语义。根据您的jq,要考虑的备选方案包括indextest