Hallo Jan, hallo Leute, Am Sonntag, 5. Oktober 2003 23:07 schrieb Jan Trippler:
cat datei | while read ln; do [...] prev="$ln" [...] done echo $prev
</ungetestet> ^^^^^^^^^^ Glaub ich gern, das echo $prev ganz am Ende (nach dem done) dürfte nämlich genau gar nix ausgeben ;-) Grund: die ganze Schleife hängt hinter einer Pipe (-> Subshell), und nach dem done wird die Subshell beendet und der Wert von $prev geht mit ihr verloren.
Das Problem lässt sich aber recht einfach lösen ;-) Ich verleihe Dir (ausgerechnet Dir!) erstmal einen useless use of cat award damit Du auch mal einen bekommst. *SCNR* Sonst verteilst Du die ja immer nur ;-) Und schon sollte das Script funktionieren: while read ln; do # kein cat, keine Pipe, keine Subshell [...] prev="$ln" [...] done < datei # ^^^^^^^ echo $prev Gruß Christian Boltz PS: handverlesene sig ;-) --
Ist das sone Art wie cat sigdatei | grep suchstring? Oh nein - nicht schon wieder! Hilfeeee, Doktor! Ich sehe schon wieder so einen unnötigen cat ;-) [> Michael Raab und Jan Trippler in suse-linux]