Hallo, manche Programme liefern zeilenweise Ausgaben, wie z.B. last. Wenn man jetzt die Ausgaben verarbeiten will, dann steht stellt sich zunächst das Problem, wie man die Ausgeben ins Skript übernimmt. Zeilenweises iterieren, z.B. anhand einer for-Schleife funktioniert nur nachdem man vorher IFS auf Zeilenenden umgestellt hat, und auch dann m.E. nicht richtig. Macht es überhaupt Sinn hier mit Variablen z.B. $( last | grep ), zu arbeiten? Oder schaltet man da besser sed ein. Garaniert IFS="\n", daß 'for' zeilenweise arbeitet? Ich hatte bei meinen Versuchen nicht immer den Eindruck. Gruß, Oliver -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Samstag, 12. Mai 2007 schrieb Oliver Block: Hallo Oliver,
manche Programme liefern zeilenweise Ausgaben, wie z.B. last. Wenn man jetzt die Ausgaben verarbeiten will, dann steht stellt sich zunächst das Problem, wie man die Ausgeben ins Skript übernimmt.
1) Du weisst nach was Du suchen willst: grep $Suchbegriff $Filename | \ while read line do #Du bist hier in einer SubShell!! echo "$line" done #hier sind alle Variablen aus der Subshell nicht mehr verfuegbar! 2) Du willst alle Zeilen bearbeiten: cat $Filename | \ while read line do #Du bist hier in einer SubShell!! echo "$line" done #hier sind alle Variablen aus der Subshell nicht mehr verfuegbar! 3) Zu Deiner Anfrage mit 'last' (zB. Suche nach Freitag): last | grep "Fri" | \ while...siehe oben Solltest Du Eintraege bestimmter Spalten pro Zeile bearbeitenwollen, dann schau Dir cut -d ' ' -f1 cut -c 1-5 usw. an. (man cut) Vielleicht hilft Dir das schon weiter? Konkrete Antworten koennen nur auf konkrete Fragen folgen :-) MfG Th. Moritz -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo Thomas, Am Samstag, 12. Mai 2007 11:21 schrieb Thomas Moritz:
Vielleicht hilft Dir das schon weiter? Konkrete Antworten koennen nur auf konkrete Fragen folgen :-)
Danke für die Beispiele. Ich werde sie mir mal genauer ansehen. Im Grunde geht es mir darum, die Verarbeitung GANZER ZEILEN in Bash-Skripten besser zu verstehen. Dafür verwende ich also am besten 'read'. In der Shell "zerfällt" eine Zeile so schnell in ihre Bestandteile.:) Gruß, Oliver -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Samstag, 12. Mai 2007 schrieb Oliver Block: Hallo Oliver, bitte nur an die Liste antworten!
Danke für die Beispiele. Ich werde sie mir mal genauer ansehen.
Im Grunde geht es mir darum, die Verarbeitung GANZER ZEILEN in Bash-Skripten besser zu verstehen. Dafür verwende ich also am besten 'read'. In der Shell "zerfällt" eine Zeile so schnell in ihre Bestandteile.:)
Das Teufelszeug nennt sich Quoting. Schau Dich mal hier etwas um: man bash (Suche mit Slash Suchbegriff, Weitersuche mit Taste n) Oder schau mal hier: http://www.linuxfibel.de/bashprog.htm oder hier: ftp://ftp.gnu.org/gnu/Manuals/bash/bashref.html ...und schon ist die Regenzeit sinnvoll genutzt :-) MfG Th. Moritz -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (2)
-
Oliver Block
-
Thomas Moritz