#!/bin/sh
flag="False"
ssh -n $Domain_1@$IP "$( cat <<'EOT'
$flag="True"
cat << 'EOT'
)"
flag é igual a false antes de conectar ao local remoto. Eu só quero alterar o valor do flag dentro do bloco ssh depois de fazer alguma operação no local remoto e retornar o valor do flag para minha variável local flag. –
Responder1
Presumo que você esteja querendo fazer algo nos moldes de
#!/bin/sh
flag=$(
ssh -T "$user@$host" <<'END_SCRIPT'
# some operations on
# the remote host goes here
# later...
if some_condition; then
echo true
else
echo false
fi
END_SCRIPT
)
Isso executaria o script fornecido como documento citado aqui no host remoto e sua saída seria atribuída à variável local flag
. Do jeito que escrevi aqui, presumo que a some operations
parte simnãoproduza qualquer saída e, em vez disso, a única saída produzida pelo script remoto venha de qualquer um dos dois echo
comandos condicionais.
Sua flag
variável receberia a string true
ou false
dependendo do resultado de some_condition
.
Se você precisar usar o valor $flag
dentro do script remoto, você terá que usar um documento aqui sem aspas. Deve-se então tomar cuidado para escapar adequadamente de quaisquer expansões de shell que você gostaria que acontecessem remotamente (escapando delas $
como \$
).