Linux-Workshop
Shell Scripting - Tipps und Tricks für Admins
Here-Dokument
Wie bereits angesprochen, liest jeder Befehl über stdin seine Eingaben. Damit dies automatisiert funktioniert, kann man mittels "echo .. | <cmd>" dem nachfolgenden Befehl die Eingaben liefern.
> bc .. ibase=10 obase=16 10 A <= Ausgabe 0Ah quit |
Automatisiert:
> echo -e "ibase=10\nobase=16\n10\nquit\n" | bc A |
Im Script gibt es dafür eine elegantere Lösung und wir sprechen von einem Here-Dokument für diesen Aufbau. Die Shell liest alle Zeilen zwischen zwei Markern und sendet diese (bearbeitet) über stdin an den Befehl. So lassen sich auch komplexe Abläufe automatisieren.
myscript:
[..] bc << _EOF_ obase=16 ibase=10 10 quit _EOF_ [..] |
> bash myscript
A
Recht neu ist die Form des "Here Strings", die "word" auf stdin an den Befehl weiterreicht:
> cmd<<<word