Here Dokument

Aus Xinux Wiki
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