Here-Documents

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Here-Documents

  • A Here-Document ermöglicht es, mehrzeiligen Text direkt an ein Kommando zu übergeben.
  • Dies ist besonders nützlich für Programme, die Eingaben aus Dateien oder STDIN erwarten.

Grundprinzip

  • Ein Here-Document leitet alles zwischen einer Start- und End-Markierung an das Kommando weiter.
  • Syntax: COMMAND <<MARKER … MARKER

Beispiel – Text an cat übergeben

  • cat <<EOF
 Hallo Welt
 Dies ist ein Beispiel für ein Here-Document.
 EOF
Ausgabe:
 Hallo Welt
 Dies ist ein Beispiel für ein Here-Document.

Beispiel – Variablen in Here-Document

  • NAME=Thomas
  • cat <<EOF
 Hallo $NAME
 Willkommen!
 EOF
Ausgabe:
 Hallo Thomas
 Willkommen!

Beispiel – Without Variable Expansion

  • NAME=Thomas
  • cat <<'EOF'
 Hallo $NAME
 Willkommen!
 EOF
Ausgabe:
 Hallo $NAME
 Willkommen!

Verwendung in Skripten

#!/bin/bash
mail -s "Betreff" user@example.com <<EOF
Hallo,

dies ist eine automatisch generierte Nachricht.

Viele Grüße
EOF

Hinweise

  • Die Markierung (EOF) kann beliebig gewählt werden, sollte aber eindeutig sein.
  • Mit einfachen Anführungszeichen um die Markierung werden Variablen nicht expandiert.
  • Mit Here-Documents lassen sich Konfigurationen, E-Mails oder mehrzeilige Eingaben direkt in Skripten erzeugen.

Aufgaben

  • Erstellen Sie ein Here-Document, das an cat weitergeleitet wird und drei Zeilen Text enthält.
  • Erzeugen Sie ein Here-Document, das eine Variable enthält und überprüfen Sie die Ausgabe mit und ohne einfache Anführungszeichen.
  • Schreiben Sie ein Skript, das ein Here-Document an mail oder echo weiterleitet.