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
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
Hallo $NAME
Willkommen!
EOF
Ausgabe:
Hallo Thomas
Willkommen!
Beispiel – Without Variable Expansion
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.