como escapar isso para que seja executado de exec ssh

1

Eu tenho o seguinte bash que funciona

export READ=$(cat /opt/TOKEN.txt);echo "initial_token: $READ" >> cassandra.yaml

Eu preciso escapar desse modo para que ele seja executado corretamente no ssh, por isso tentei o seguinte

ssh host 'export READ=\$(cat /opt/TOKEN.txt);echo \"initial_token: \$READ\" >> cassandra.yaml'

produz erros

bash: -c: line 0: syntax error near unexpected token '('
bash: -c: line 0: 'export READ=\$(cat /opt/TOKEN.txt);echo \"initial_token: \$READ\" >> cassandra.yaml'

bem como

ssh host 'export READ=\$\(cat /opt/TOKEN.txt\);echo \"initial_token: \$READ\" >> cassandra.yaml'

produz erros

bash: line 0: export: '/opt/TOKEN.txt)': not a valid identifier

Alguém sabe como escapar disso? obrigado, Dean

    
por Dean Hiller 27.08.2012 / 19:21

2 respostas

3

Você está escapando muito - bash já não faz nenhuma interpretação de strings entre aspas simples:

ssh host 'READ=$(< /opt/TOKEN.txt); echo "initial_token: $READ" >> cassandra.yaml'
    
por 27.08.2012 / 20:27
2

ah cara, isso é muito legal waaaaaayyyyy. Eu acabei de encontrar isso, então não preciso me preocupar em escapar de QUALQUER OUTRA FORMA ...

ssh user@serverB <<\EOF
your sql query....
.....
.....
EOF
    
por 27.08.2012 / 21:50

Tags