Estou tentando enviar um comando bash sobre SSH usando ssh -q $REMOTE -x "command"
.
Porque eu tenho vários comandos bash, estou usando << EOF
.
O problema é que o comando readlink me retorna uma string vazia quando atribuo seu resultado a uma variável. Quando eu chamo diretamente, não é.
Aqui está uma versão simplificada do meu código:
ssh -q $REMOTE -x << EOF
LINK="/path/to/my/link" # the link points to /path/to/my/file
readlink $LINK # outputs /path/to/my/file
TEST=$(readlink -f "$LINK")
echo $TEST # outputs an empty string
EOF
Nesse ponto, coloquei o mesmo código em um script de shell na máquina remota e tentei chamar o script de shell:
# local machine
ssh -q $REMOTE -x << EOF
./test-script
EOF
# remote machine "test-script"
LINK="/path/to/my/link" # the link points to /path/to/my/file
readlink $LINK # outputs /path/to/my/file
TEST=$(readlink -f "$LINK")
echo $TEST # outputs /path/to/my/file
De repente está funcionando, quando estou chamando o script remoto, tudo funciona bem, mas por que não está funcionando com o ssh?