Diese Frage hat hier bereits Antworten :
Kommentare
- Siehe 3.6.6 Hier Dokumente im Bash-Handbuch
Antwort
<<-EOF
ignoriert führende Registerkarten in Ihrem Heredoc, <<EOF
nicht. Also:
cat <<EOF Line 1 Line 2 EOF
erzeugt
Line 1 Line 2
während
cat <<-EOF Line 1 Line 2 EOF
erzeugt
Line 1 Line 2
Antwort
Wenn Sie <<-EOF
verwenden, empfehle ich die Manpage der Bourne-Shell:
Wenn jedoch der Bindestrich (-) an < <:
-
führende Registerkarten werden vor dem Lesen der Shell-Eingabe (aber danach) aus dem Wort entfernt Die Parameter- und Befehlsersetzung erfolgt für das Wort.
-
Führende Registerkarten werden beim Lesen und vor dem Vergleich jeder Zeile mit dem Wort von der Shell-Eingabe entfernt. und
-
Shell-Eingabe wird bis zur ersten Zeile gelesen, die buchstäblich mit dem resultierenden Wort übereinstimmt, oder bis zu einem EOF.
Mit <<-
kann der Inhalt des hier gezeigten Dokuments zur besseren Lesbarkeit eingerückt werden.