Você está executando jq
na máquina local, já que está usando um documento "sem aspas" aqui, em que os caracteres \'$
são interpolados. Para executar o comando no shell remoto, organize o texto passado no documento here para conter o comando. Como você não usa nenhuma variável local ou substituição de comando, a maneira mais fácil de fazer isso é usar um documento literal aqui.
ssh -i manu_bp.pem [email protected] <<'EOF'
sudo -s
cat /opt/revsw-config/apache/rijomon2_revsw_net/ui-config.json > r1.txt
echo "$(jq ".rev_component_co.mode" r1.txt)"
EOF
Assumo que o uso de backquotes em torno de parênteses em dólar foi um erro - isso levaria a saída do comando jq
e usaria essa saída como um comando para executar.
Você pode simplificar isso: echo "$(somecommand)"
é uma maneira complicada de imprimir a saída de somecommand
(com algumas diferenças, como descartar novas linhas finais e, em alguns casos, fazer a expansão de contrabarra, mas se isso for importante, usar echo
é provavelmente o método errado).
ssh -i manu_bp.pem [email protected] <<'EOF'
sudo -s
cat /opt/revsw-config/apache/rijomon2_revsw_net/ui-config.json > r1.txt
jq ".rev_component_co.mode" r1.txt
EOF
Você poderia escrever isso em um único comando (novas linhas opcionais), mas cuidado com a necessidade de dois níveis de cotação, um para o shell local e outro para o shell de remoção.
ssh -i manu_bp.pem [email protected] 'sudo sh -c "
cat /opt/revsw-config/apache/rijomon2_revsw_net/ui-config.json > r1.txt;
jq .rev_component_co.mode r1.txt"'
Se você não precisa executar jq
como root, apenas para ler o arquivo como root, use
ssh -i manu_bp.pem [email protected] '
sudo cat /opt/revsw-config/apache/rijomon2_revsw_net/ui-config.json > r1.txt;
jq .rev_component_co.mode r1.txt'