Experimente assim:
scp dogbert@hostA:$(ssh dagobert@hostA "echo $FOO")/evil-secret-plans.txt .
Um pouco de sobrecarga.
Existe uma maneira de avaliar as variáveis de ambiente em um host remoto ao usar o SCP?
Por exemplo, digamos que eu tenha $FOO= /mydir
no host A; como eu faria algo como:
scp dogbert@hostA:$FOO/evil-secret-plans.txt .
É claro que $FOO
não está definido na minha máquina local, então o comando acima não funciona como está.
O mais fácil é enviar o arquivo com tar ou gzip por stdout / stdin.
tar -czf - ./evilsecretfile.txt | ssh user@remoteHost "cd \${varOnRemoteSystem} ; tar -xzf - ."
ou
gzip -c localFileName.txt | ssh user@remoteHost "gzip -d > /remote/path/\${varOnRemoteSystem} ; chmod 666 /remote/path\${varOnRemoteSystem}"
Adicione um \
:
scp dogbert@hostA:"\$FOO/evil-secret-plans.txt" .
Tags environment-variables scp