2008-09-16 8 views

Répondre

23

Le tee de commande unix fait cela.

man tee 
+0

Si cela ne tenait qu'à moi, en emphasant, j'accepterais cette réponse –

2

Utilisez Procmail. Procmail est votre ami. Procmail est fait pour ce genre de chose.

10
cat > FILENAME 
5

Le tee outil unix norme peut le faire. Il copie l'entrée à la sortie, tout en l'enregistrant dans un fichier.

8

Vous n'êtes pas seul à avoir besoin quelque chose de similaire .. en fait, quelqu'un a voulu il y a des décennies et i développé tee :-)

Bien sûr, vous pouvez rediriger stdout directement vers un fichier dans un shell en utilisant la> caractère:

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

Huh? Je suppose, je ne comprends pas la question?

Ne peut pas vous mettre fin à votre juste un tuyau dans >> ~file

Par exemple

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

ajoutera Foobar au dumpfile (et créer dumpfile si nécessaire). Pas besoin de script shell ... C'est ce que tu cherchais?

1

Si vous souhaitez analyser dans le script:

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

Mais vous pouvez simplement utiliser le chat. Si le chat obtient quelque chose sur le stdin, il le fera écho à la sortie standard, donc vous devrez le rediriger vers cat> $ OUTPUT. Ceux-ci feront de même. La seconde fonctionne également pour les données binaires.

0

si vous ne se soucient pas de sortir le résultat

cat - > filename 

ou

cat > filename 
0

Si vous voulez un script shell, essayez ceci:

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

Si Exim ou sendmail est ce qui écrit dans le tuyau, alors procmail est une bonne réponse car elle vous donnera le verrouillage/sérialisation de fichier et vous un mettre tout dans le même fichier.

Si vous voulez juste d'écrire dans un fichier, puis - T> /tmp/log.$$ ou - chat> /tmp/log.$$ pourrait être assez bon.

0

< < commande >> | tee < fichier >>

Cela affichera également la sortie.

Questions connexes