Отправка JQ через SSH - PullRequest
       16

Отправка JQ через SSH

0 голосов
/ 15 октября 2019

Когда я запускаю команду jq локально, она работает:

jq --arg ip "$IP" '.nodes|.app|.ip = $ip' nodes.json

Вывод:

{"node": 1, "is_manager": true, "ip": "127.0.0.1 "," cpus ": 16," memory ": 64}

Но я не могу понять, как я могу отправить его удаленно через ssh, например, эта команда возвращает ошибку:

 ssh -o StrictHostKeyChecking=no -i key.pem user@"172.13.1.23" "jq --arg ip "127.0.0.1" '.nodes|.app|.ip = $ip' nodes.json"

Вывод:

jq: error: ошибка синтаксиса, неожиданный $ end (проблемы с цитированием оболочки Unix?) В строке 1: .nodes | .app | .ip= jq: 1 ошибка компиляции

1 Ответ

2 голосов
/ 15 октября 2019

$ip в двойных кавычках, поэтому расширяется локально. Вам нужно убежать от знака доллара.

ssh -o StrictHostKeyChecking=no -i key.pem user@"172.13.1.23" \
  "jq --arg ip "127.0.0.1" '.nodes|.app|.ip = \$ip' nodes.json"
...