Sie verwechseln eine heredoc
mit einer pipeline
.
heredoc mit variabler Expansion:
cat <<EOF
some text, possibly with variables: ${HOME}/$(whoami)
EOF
some text, possibly with variables: /home/attie/attie
heredoc ohne variable Expansion:
cat <<"EOF"
some text, possibly with variables: ${HOME}/$(whoami)
EOF
some text, possibly with variables: ${HOME}/$(whoami)
Pipeline mit variabler Ausdehnung (man beachte die Anführungszeichen, "
):
echo "some text, possibly with variables: ${HOME}/$(whoami)" | cat
some text, possibly with variables: /home/attie/attie
Pipeline ohne variable Erweiterung (die Anführungszeichen beachten, '
):
echo 'some text, possibly with variables: ${HOME}/$(whoami)' | cat
some text, possibly with variables: ${HOME}/$(whoami)
${...}
erweitert eine Umgebungsvariable
$(...)
einen Befehl ausgeführt wird, und setzt seine stdout
Es sieht auch wie Sie versuchen, Ihr Kennwort in sudo
eintragen lassen - das wird nicht funktionieren, wie sudo das Terminal repoen Ihr Passwort zu erhalten, bevor es stdin
auf die endgültige Anwendung übergeben.
Könnte es sein, dass du den Wald verloren hast, als du nach den Bäumen hier gesucht hast? Es scheint mir, dass Ihr tatsächliches Problem ziemlich einfach ist. In jedem Fall wird Code innerhalb eines Heredoc-Blocks nicht ausgeführt. Das ist der Punkt. Wenn Sie es ausführen möchten, schreiben Sie es einfach als normalen Code. – 5gon12eder