Skip to content

Shell-Magie ...

Je länger ich mich mit der Shell (BaSH in diesem Fall) beschäftige, desto mehr denke ich, dass ich schon alles gesehen habe.

Dieses Konstrukt aber ist mir neu, ja das mit < <(kommando) und vielleicht kann das auch jemand von Euch brauchen.

#!/bin/bash

while read line; do
        echo ${line}
        [[ /${line}/ =~ /.*Suchtext.*/ ]] && break
done < <(tail -f logfile)


Es macht einen tail -f logfile und durchläuft die Schleife für jede Zeile im logfile . Alle Zeilen werden ausgegeben und wenn ein Suchtext im logfile vorkommt, wird die Schleife abgebrochen. Für die, die es nicht kennen, mit =~ kann man ab BaSH Version 3 auch mit regulären Ausdrücken suchen. Die Schrägstriche / werden nur für den Fall benötigt, dass im logfile auch Leerzeilen vorkommen.

Das Konstrukt umschifft einige Schwächen, die ähnliche Beispiele haben, die mit anderen Arten von Ein- und Ausgabeumlenkung arbeiten.

Wer es nicht glaubt, kann mal das Folgende probieren:

#!/bin/bash

tail -f logfile | while read line; do
        echo ${line}
        [[ /${line}/ =~ /.*Suchtext*/ ]] && break
done

Trackbacks

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Noch keine Kommentare

Kommentar schreiben

Gravatar, Favatar, Pavatar, Identica, Twitter, MyBlogLog Autoren-Bilder werden unterstützt.
BBCode-Formatierung erlaubt
Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
:'(  :-)  :-|  :-O  :-(  8-)  :-D  :-P  ;-) 
Formular-Optionen