Передача переменной оболочки bash в фильтр jq

Попытка передать переменную оболочки bash в фильтр jq

JSON:

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

Команда Bash пытается выполнить:

 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'

1 ответ

Решение

Вы могли бы написать:

.[$servername] | .port

или просто:

.[$servername].port
Другие вопросы по тегам