ssh o comando não origina envios de exportação

1

Eu tenho um script bash remoto (em /home/web/web/scripts/setenv.sh ) encarregado de exportar variáveis de ambiente:

#!/bin/bash
export [email protected]

Em uma máquina local, eu gostaria de poder fazer ssh na máquina remota e executar um comando. Esse comando deve primeiro configurar as variáveis de ambiente e, em seguida, usá-las no comando (aqui, apenas imprimo):

ssh [email protected] "source /home/web/web/scripts/setenv.sh && echo ${SYMFONY__ENV__MAILER__USER}"

O resultado do eco é uma string vazia.

Eu também tentei isso, mas isso produz o mesmo resultado:

ssh [email protected] "/bin/bash -c '. /home/web/web/scripts/setenv.sh && echo ${SYMFONY__ENV__MAILER__USER}'"

Por que o eco não imprime [email protected] ?

    
por SCO 04.05.2017 / 10:45

1 resposta

1
ssh [email protected] "source /home/web/web/scripts/setenv.sh && echo ${SYMFONY__ENV__MAILER__USER}"

Isso avalia a variável no seu shell local. Para avaliar a variável no shell remoto, você deve passar o comando entre aspas simples:

ssh [email protected] 'source /home/web/web/scripts/setenv.sh; echo ${SYMFONY__ENV__MAILER__USER}'

Deve fazer o trabalho. Pelo menos o reprodutor mínimo funciona para mim:

$ ssh machine 'VAR=test; echo $VAR'
test
    
por 04.05.2017 / 12:40