Bash-Befehlsersetzung auf Remote-Host [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Wie kann << EOF >> eine Datei mit Code erstellt werden? 3 answers

Ich versuche, ein Bash-Skript auszuführen, das ssh auf einem Remote-Host ausführt und den einzelnen Docker-Container stoppt, der ausgeführt wird.

#!/usr/bin/env bash

set -e

ssh <machine> <<EOF

container=$(docker ps | awk 'NR==2' | awk '{print $1;}')

docker stop $container

EOF

Ich erhalte jedoch den folgenden Fehler:

stop.sh: line 4: docker: command not found

Wenn ich das manuell mache (ssh auf dem Computer, führe die Befehle aus), ist alles in Ordnung, aber wenn ich versuche, dies mithilfe eines Skripts zu tun, erhalte ich den Fehler. Ich vermute, dass meine Befehlssubstitutionssyntax falsch ist und ich alle Arten von Anführungszeichen usw. gesucht und ausprobiert habe, aber ohne Erfolg.

Kann mir jemand sagen, wo ich falsch liege?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage