Am Mittwoch, 28. Juli 2004 09:43 schrieb Dr. Jürgen Vollmer:
MichaelHoeller@t-online.de (Michael Hoeller)
im u.a. skript wird in der while true; Schleife der Wert für FARBE geändert aber allem Anschein nach gilt dieser nur lokal in der Schleife denn die Ausgabe von osd_cat ist immer grün. Liege ich mit meiner Vermutung richtig? Wenn ja wie kann den Wert aus der Schleife an osd_cat übergeben?
Das Script verkürzt: FARBE=rot while true ; do ... FARBE=gruen ... done | cmd $FARBE
das macht sicherlich nicht das gewünschte, denn die WHILE-Schleife wird als Sub-shell ausgeführt, also selbst FARBE=rot while true ; do ... FARBE=gruen ... done echo $FARBE
wird immer nur rot ausgeben.
Nein! Wie David schon schrieb (und ich hatte Dich neulich schon mal darauf hingewiesen): Nicht die Schleife ist das Problem sondern die Pipe. jan@jack:~> f=rot jan@jack:~> while true; do
f=gruen break done jan@jack:~> echo $f gruen jan@jack:~> f=rot jan@jack:~> while true; do f=gruen; break; done | echo $f rot
Jan -- Linux-Quickies: http://www.jan-trippler.de PingoS: http://www.pingos.org