es sein sollte:
VAR=$(ssh "$USERNAME"@"$HOST" -- remote_command -option)
Sie wollen remote_command
remote ausführen und speichern Sie es lokal in einer Variablen. Das ist der obige Befehl.
Wenn Sie einen mehrzeiligen Befehl ausführen möchten remote verwenden Sie das folgende Konstrukt mit einem hier doc:
VAR=$(ssh "$USERNAME"@"$HOST" <<EOF
remote_command -option
another_command
...
EOF
)
Btw, es sei denn, Sie lokale Variablen in den Remote-Befehl einfügen möchten, werden Sie wahrscheinlich lokale Shell deaktivieren möchten Erweiterungen im hier doc <<'EOF'
als Startdelimiter (beachten Sie die '
) mit:
VAR=$(ssh "$USERNAME"@"$HOST" <<'EOF'
remote_command -option
another_command
...
EOF
)
in der obigen Form Sie Shell-Variablen, Kommandosubstitution usw. im Remote-Skript verwenden können. Wie folgt aus:
VAR=$(ssh "$USERNAME"@"$HOST" <<'EOF'
COUNT=$(remote_command -option)
another_command "${COUNT}"
if $((COUNT+1)) ; then
foo -bar
fi
... and so on. all expansions happen remotely
EOF
)
wollte dieses Format als zwischen dem ersten und letzten Zeile verwenden ich eine große Logik zu schreiben habe vor, die auf dem Remote-Rechner – chozhan
ssh $ username @ $ SUT ausgeführt werden müssen << EOD COUNT = $ (ls -la | wc -l) if [$ COUNT -eq 4]; dann remote_command2 fi EOD Planung, etwas wie das zu tun. Fragen Sie sich, ob das möglich ist – chozhan
Verwenden Sie die letztere Version mit der << << EOF' in diesem Fall – hek2mgl