Poszukuję małego skryptu powłoki, który zabierze wszystko do niego, i zrzuci go do pliku .. na potrzeby debugowania wiadomości e-mail. Jakieś pomysły?Jaka jest prosta metoda zrzucania wejścia rur do pliku? (Linux)
Odpowiedz
Trójnik polecenia unix robi to.
man tee
Użyj Procmail. Procmail jest twoim przyjacielem. Procmail jest stworzony do tego typu rzeczy.
cat > FILENAME
Standardowe narzędzie tee unix można tego zrobić. Kopiuje dane wejściowe na wyjście, jednocześnie rejestrując je w pliku.
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
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ś?
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.
jeśli nie dbają o wyprowadzanie wynik
cat - > filename
lub
cat > filename
Jeśli chcesz skrypt, spróbuj tego:
#!/bin/sh
exec cat >/path/to/file
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.
< < komenda >> | plik < plik >>
Wyświetli to również dane wyjściowe.
Gdyby to zależało ode mnie, zniechęciło, "zaakceptowałbym" tę odpowiedź –