jq で環境変数を使おうとして jq ".[] | select(.name == ${NAME})" とかしてもうまくいかない。

フィルタまるごと変数にする

$ name=foo
$ expression=".[] | select(.name == \"${name}\")"
$ jq "${expression}" example.json

--arg を使う

jq Manual (development version) Add a field to an object with JQ · GitHub

$ env_name=foo
$ jq --arg name ${env_name} '.[] | select(.name == $name)' example.json
  • --arg expression内で使う変数名 値 の順番
  • expression内では "${name}" ではなく $name とする必要がある