Here Dokument
Zur Navigation springen
Zur Suche springen
Was ist das?
- Ein Here-Dokument in Bash ermöglicht es, mehrzeilige Eingaben oder Skripte direkt in einem Befehl oder Skript zu definieren, ohne dass eine separate Datei erstellt werden muss.
- Mit dem Here-Dokument kann eine spezielle Syntax verwendet werden, um den Anfang und das Ende des Dokuments zu markieren, beispielsweise <<EOF und EOF, wobei "EOF" als Trennsymbol dient.
- Der Inhalt des Here-Dokuments wird in der Regel als Eingabe an einen Befehl oder in eine Datei umgeleitet und kann Variablen, Befehlsausführungen oder andere Shell-Ausdrücke enthalten.
- Heredocs dienen zur Definition von Textabschnitten.
Here-Dokumente in Bash
Was ist das?
- Ein Here-Dokument (Heredoc) in Bash ermöglicht es, mehrzeilige Eingaben oder Skripte direkt in einem Befehl oder Skript zu definieren, ohne dass eine separate Datei erstellt werden muss.
- Dabei wird eine spezielle Syntax verwendet, um den Anfang und das Ende des Textblocks zu markieren – typischerweise <<EOF und EOF, wobei „EOF“ ein beliebiges Trennsymbol ist.
- Der Inhalt des Here-Dokuments wird in der Regel als Eingabe an einen Befehl oder in eine Datei umgeleitet und kann Variablen, Befehlsausgaben oder andere Shell-Ausdrücke enthalten.
- Here-Documents dienen der komfortablen Definition von Textabschnitten, z. B. Konfigurationsdateien oder Vorlagen.
Umsetzung
Der Block ab cat <<HERE wird bis zum abschließenden HERE ausgegeben. Das Trennwort (hier HERE) ist frei wählbar, darf jedoch **keine Leerzeichen enthalten**.
#!/bin/bash
INT=$1
IP=$2
NM=$3
GW=$4
cat <<HERE
auto $INT
iface $INT inet static
address $IP
netmask $NM
gateway $GW
HERE
Aufrufbeispiel:
- ./interface-gen.sh eth3 192.168.24.67 255.255.255.0 192.168.24.1
Ausgabe:
auto eth3 iface eth3 inet static address 192.168.24.67 netmask 255.255.255.0 gateway 192.168.24.1
Aufgabe – Samba-Konfiguration mit Here-Dokument
- Ziel
Erstellen Sie mit einem Bash-Skript eine minimale Samba-Konfiguration mithilfe eines Here-Dokuments.
- Beschreibung
- Das Skript soll drei Parameter entgegennehmen:
- <workgroup>
- <share>
- <path>
- Diese Parameter sollen im Text des Here-Dokuments als Variablen verwendet werden.
- Das Skript gibt den erzeugten Konfigurationsinhalt auf der Standardausgabe aus (keine Datei schreiben!).
Beispielinhalt:
[global]
workgroup = <workgroup>
server role = standalone server
passdb backend = tdbsam
usershare allow guests = Yes
[<share>]
comment = share dir
path = <path>
read only = No
store dos attributes = Yes
inherit acls = Yes
- Hinweise
- Nutzen Sie Variablenersetzung im Here-Dokument, z. B.:
cat <<EOF
- Testen Sie das Skript mit:
./samba-gen.sh ARBEITSGRUPPE public /srv/samba/public