lug-dd@schlittermann.de schrieb am 08.08.01:
On Wed, Aug 08, 2001 at 05:27:20PM +0200, Reinhard Foerster wrote:
On Wed, Aug 08, 2001 at 04:49:27PM +0200, Christian Perle wrote:
echo BBB | (echo AAA ; cat)
[1]
Mir ist noch unklar, warum in diesem Fall BBB bei cat noch ankommt, bei
echo BBB | echo AAA ; cat
[2]
aber nicht. Genauer: Wieso bekommen in der Subshell BEIDE Kommandos die Pipe als input? Wer vonden beiden die BBB zuerst liest, hat sie. Bei
echo BBB | (cat ; cat)
[3]
gibt das erste cat die BBB aus.
Hy, ich hoffe ich habe die richtige erklärung für << echo BBB | (echo AAA ; cat)! Zuerst werden die Befehle aus der Klammer bearbeitet. Es wird also AAA von echo auf die die Standartausgabe geschrieben, dann erfolgt, getrennt durch das Semikolon, der zweite Befehl, eben cat! Wird hinter cat in der Befehlszeile kein Dateiname angegeben, wartet es auf Eingaben von der Tastatur (Standarteingabe). Und hier kommt die Pipe ins Spiel. Sie verknüpft die Standartausgabe (echo BBB) mit der Standarteingabe (cat). Oder einfach, dass was der erste Befehl ausgibt, ist die Eingabe für den zweiten Befehl!
Beim zweiten Beispiel ( echo BBB | echo AAA ; cat ) verbindet die Pipe die Standartausgabe aber NICHT mit der Standarteingabe, da nun, aufgrund der fehlenden Klammer, echo BBB mit echo AAA, und nicht mit cat verknüpft/verbunden wird!
Hope I helped you! Tschüß Robi
Lug-dd maillist - Lug-dd@schlittermann.de http://mailman.schlittermann.de/mailman/listinfo/lug-dd
Roberto Rösler _______________________________________________________________________ 1.000.000 DM gewinnen - kostenlos tippen - http://millionenklick.web.de IhrName@web.de, 8MB Speicher, Verschluesselung - http://freemail.web.de _______________________________________________________________________ Das WEB.DE Zertifikat zur Pruefung digitaler Unterschriften gibts bei: http://trust.web.de/root.sql