Ich habe ein Skript, das viele verschiedene Dinge auf vielen verschiedenen Remote-Rechnern erledigen muss. Ich dachte, dass ein Heredoc dafür funktionieren würde, aber ich bin nicht in der Lage, eine Variable zu verwenden, die an anderer Stelle im Skript definiert ist, und eine, die im Heredoc definiert ist.
Hier ist ein Code:
#!/bin/sh
FOO="foo"
ssh some.remote.host << EOF
BAR="bar"
echo "FOO=$FOO"
echo "BAR=$BAR"
EOF
Dies druckt nur die folgenden:
FOO =
BAR = bar
Wenn ich die EOF-Zeile jedoch so zitiere:
ssh some.remote.host << "EOF"
dann gibt sie nur Folgendes aus:
FOO = foo
BAR =
Irgendwelche Hinweise, wie ich beide Variablen innerhalb des Heredocs verwenden kann?
Vielen Dank.
quelle