Was ist anders zwischen “ < < -EOF ” und “ < < EOF ” im Bash-Skript? [duplizieren]

Diese Frage hat hier bereits Antworten :

Kommentare

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 < <:

  1. 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.

  2. Führende Registerkarten werden beim Lesen und vor dem Vergleich jeder Zeile mit dem Wort von der Shell-Eingabe entfernt. und

  3. 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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.