Ich habe diese mehrzeilige Zeichenfolge (Anführungszeichen enthalten):
abc'asdf"
$(dont-execute-this)
foo"bar"''
Wie würde ich es einer Variablen mit einem Heredoc in Bash zuweisen?
Ich muss Zeilenumbrüche beibehalten.
Ich möchte den Zeichen in der Zeichenfolge nicht entkommen, das wäre ärgerlich ...
"EOF"
Variablen mit doppelter Qout-Funktion führen bei einem Aufruf von via dazu eval $VAR
, dass der gesamte Rest des Skripts kommentiert wird, da hier $ VAR als einzelne Zeile angezeigt wird ;; Um Bash- #
Kommentare in mehrzeiligen Skripten verwenden zu können, wird das doppelte Anführungszeichen auch in der eval call:
Bewertung "$ VAR" `angegeben.
eval
dieser Methode, habe sie aber nicht gefunden, da sie Teil eines Pakets war, dessen eval
Variablen in der Konfigurationsdatei definiert sind. Fehlermeldung war : /usr/lib/network/network: eval: line 153: syntax error: unexpected end of file
. Ich habe gerade zu einer anderen Lösung gewechselt.
'EOF'
, mit` in the content: if the second line has
Escape- Zeilenumbrüchen mit dem Befehl cd`. Ich erhalte zurück: " .sh: Zeile X: Befehl cd: Befehl nicht gefunden "; aber wenn ich doppelt zitiere"EOF"
; dann werden Bash-Variablen${A}
nicht als Zeichenfolgen beibehalten (sie werden erweitert); aber dann, Zeilenumbrüche werden erhalten - und ich habe keine Probleme , einen Befehls mit fliessendcd
in der zweiten Zeile ( und sowohl ‚EOF‘ und „EOF“ scheint gut auch zu spieleneval
, für den Betrieb eine Reihe von Befehlen gespeichert in eine Stringvariable ). Prost!