我尝试以这种方式传递shell变量:
jq -r --arg NEWGROUP "$NEWGROUP" '.[] | select(.name | contains("$NEWGROUP") ) | .id'
但它不起作用。
当我在contains()中明确指定组名时,它可以正常工作。 我做错了什么?
答案 0 :(得分:2)
我做错了吗?
是的,在jq程序中,你引用了你想要的jq变量,从而把它变成了一个JSON字符串。只需删除引号,让$ -string为$ -variable。
P.S。您可能应该避免contains
,它具有奇怪的语义。根据您的jq,要考虑的备选方案包括index
和test
。