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
Es macht einen
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:
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)
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
tail -f logfile | while read line; do
echo ${line}
[[ /${line}/ =~ /.*Suchtext*/ ]] && break
done
Kommentare
Ansicht der Kommentare: Linear | Verschachtelt