2008-09-16 14 views

Odpowiedz

23

Trójnik polecenia unix robi to.

man tee 
+0

Gdyby to zależało ode mnie, zniechęciło, "zaakceptowałbym" tę odpowiedź –

2

Użyj Procmail. Procmail jest twoim przyjacielem. Procmail jest stworzony do tego typu rzeczy.

10
cat > FILENAME 
5

Standardowe narzędzie tee unix można tego zrobić. Kopiuje dane wejściowe na wyjście, jednocześnie rejestrując je w pliku.

8

Nie jesteś sama potrzebuje czegoś podobnego .. W rzeczywistości, ktoś chciał I dekady temu i opracowany tee :-)

Oczywiście, można przekierować stdout bezpośrednio do pliku w każdej muszli za pomocą> postać:

echo "hello, world!" > the-file.txt 
0

Huh? Chyba nie mam pytania?

nie można po prostu zakończyć rurę do >> ~file

Na przykład

echo "Foobar" >> /home/mo/dumpfile 

dołączy foobar na wstępnym plikiem (i tworzyć dumpfile jeśli to konieczne). Nie potrzebujesz skryptu powłoki ... Czy tego właśnie szukałeś?

1

Jeśli chcesz analizować go w skrypcie:

while /bin/true; do 
    read LINE 
    echo $LINE > $OUTPUT 
done 

Ale można po prostu użyć kota. Jeśli cat dostanie coś na stdin, wywoła to echo do standardowego wyjścia, więc musisz potokować go do cat> $ OUTPUT. Będą robić to samo. Drugi działa również dla danych binarnych.

0

jeśli nie dbają o wyprowadzanie wynik

cat - > filename 

lub

cat > filename 
0

Jeśli chcesz skrypt, spróbuj tego:

#!/bin/sh 
exec cat >/path/to/file 
1

Jeśli exim lub sendmail jest to, co pisze do potoku, wtedy procmail jest dobrą odpowiedzią, ponieważ da ci blokowanie pliku/serializację, a ty a umieść to wszystko w tym samym pliku.

Jeśli chcesz po prostu napisać do pliku, a następnie - tee> /tmp/log.$$ lub - cat> /tmp/log.$$ może być wystarczająco dobre.

0

< < komenda >> | plik < plik >>

Wyświetli to również dane wyjściowe.

Powiązane problemy