[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bash und named pipes (mkfifo)
[Thread Prev] | [Thread Next]
- Subject: bash und named pipes (mkfifo)
- From: Markus Hochholdinger <Markus@xxxxxxxxxxxxxxxxx>
- Date: Fri, 2 Feb 2007 23:30:30 +0100
- To: uugrn@xxxxxxxxxxxxxxx
Hallo Liste, hier mal eine kleine Knobel-Aufgabe: Das hier wuerde ich gerne machen: bash$ mkfifo in bash$ mkfifo out bash$ while read cmd > do > echo $cmd > done < in | ssh server 'while read cmd > do > $cmd > done' > out Und zwar so, dass nach einem bash$ echo "ls" > in das Konstrukt bestehen bleibt. Nutze ich "while read cmd || true" anstatt "while read cmd" beendet sich das Konstrukt nicht, wie gewuenscht. Nur geht dann die CPU auf 100%. Wie kann ich dem "while read cmd" beibringen, dass er nur lesen soll, wenn auch was kommt, aber gleichzeitig die Verbindung zur Pipe offen haelt sobald ein Kommando abgesetzt wurde? Ein bash$ while read cmd > do > test -n "$cmd" && echo $cmd > done hilft da nur unwesentlich weiter, Load geht trotzdem (unnoetig?) hoch. Ohje, beim tippen dieser Mail habe ich eine Loesung gefunden, schicke die Mail trotzdem mal raus, vlt. gibt es ja bessere Loesungen? Also ich habe es wie folgt geloest: bash$ while true > do > while read cmd > do > echo $cmd > done < in > done | ssh server 'while read cmd > do > $cmd > done' > out Und noch gleich hinterher: Gibt es bessere Loesungen fuer mein Problem? Ich wuerde gerne ohne grosse Zeitverzoegerung Kommandos auf entfernten Server ausfuehren und die Ausgabe der Kommandos dann auswerten. Jedes mal ein ssh-Connect ist mir zu teuer (Resourcen und Zeit). -- Gruss \|/ eMHa (o o) ------------------------------------------------------oOO--U--OOo-- Markus Hochholdinger e-mail mailto:Markus@xxxxxxxxxxxxxxxxx .oooO www http://www.hochholdinger.net ( ) Oooo. ------------------------------------------------------\ (----( )- \_) ) / (_/ -- http://mailman.uugrn.org/mailman/listinfo/uugrn