#!/bin/sh
flag="False"
ssh -n $Domain_1@$IP "$( cat <<'EOT'
$flag="True"
cat << 'EOT'
)"
flag es igual a false antes de conectarme a la ubicación remota. Solo quiero cambiar el valor de flag dentro del bloque ssh después de realizar alguna operación en una ubicación remota y devolver el valor de flag a mi variable local flag. –
Respuesta1
Supongo que quieres hacer algo parecido a
#!/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
)
Esto ejecutaría el script proporcionado como documento aquí citado en el host remoto y su salida se asignaría a la variable local flag
. Por la forma en que lo he escrito aquí, supongo que el some operations
bit nonoproducir cualquier resultado y, en cambio, que el único resultado producido por el script remoto provenga de cualquiera de los dos echo
comandos condicionales.
A su flag
variable se le asignará la cadena true
o false
dependiendo del resultado de some_condition
.
Si necesita utilizar el valor $flag
dentro del script remoto, deberá utilizar un documento aquí sin comillas. Luego se debe tener cuidado de escapar adecuadamente de cualquier expansión de shell que desee que ocurra de forma remota (escapando de $
estas como \$
).