Bash-Befehlsersetzung auf Remote-Host [duplizieren]
Diese Frage hat hier bereits eine Antwort:
Wie kann << EOF >> eine Datei mit Code erstellt werden? 3 answersIch 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?