当我在本地运行jq命令时,它起作用:
jq --arg ip "$IP" '.nodes|.app|.ip = $ip' nodes.json
输出:
{“节点”:1,“ is_manager”:是的,“ ip”:“ 127.0.0.1”,“ cpus”:16“内存”: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:错误:语法错误,第1行的意外$ end(Unix shell引用问题?).nodes | .app | .ip =jq:1编译错误
$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"