linux-l: Bug or Feature

Jens Dreger jens.dreger at physik.fu-berlin.de
Do Mär 23 12:18:58 CET 2000


On Thu, Mar 23, 2000 at 11:23:58AM +0100, Alfred Schweder wrote:
> Hallo
> 
> Ich brauchte ein Script, das einfach alle Daten von STDIN nehmen soll und
> sowohl in ein File alsauch nach STDOUT schreiben soll.
> Also mal ein einfacher Ansatz:
> 
> [500] cat filter.sh
> #!/usr/bin/tee /tmp/log
> [501] echo Test | ./filter.sh
> Test
> [502] cat /tmp/log
> Test
> [503] cat filter.sh
> Test
>

Hm, sieht aus, als haettest Du Deinen kernel mit der Option
TEE_OVERWRITES_EVERYTHING_IN_REACH kompiliert. Passiert das denn auch,
wenn Du linux von Diskette bootest ?

Okok, Ernst jetzt...

Man nehme als filter.sh:

#!/bin/echo arg1

~> ./filter.sh
arg1 ./filter.sh

Demnach wird der Name des Skripts als Paramter an das Programm
uebergeben, welches in der #!-Zeile eingetragen ist. In dem tee-Falle
heisst das also, dass "echo Test | ./filter.sh" effektiv in

       echo Test | tee /tmp/log ./filter.sh

umgesetzt wird, und das Skript somit ueberschrieben wird.

Loesung ist natuerlich:

-------8<-----------
#!/bin/sh

/usr/bin/tee /tmp/log
------8<----------------

aber das ist Dir sicherlich klar...

Gruss,

Jens.



Mehr Informationen über die Mailingliste linux-l