¿Qué es un método simple para el volcado de la tubería de entrada a un archivo?(Linux)
Pregunta
Estoy buscando un pequeño shell script que va a tomar nada de lo que se escucha en ella, y la descarga de un archivo..de correo electrónico para propósitos de depuración.Alguna idea?
Solución
El comando unix tee hace esto.
man tee
Otros consejos
cat > FILENAME
No estás sola en la necesidad de algo similar...de hecho, alguien quería que la funcionalidad de hace décadas y desarrollado tee :-)
Por supuesto, usted puede redirigir stdout directamente a un archivo en cualquier shell mediante el carácter>:
echo "hello, world!" > the-file.txt
El estándar de unix herramienta tee puede hacer esto.Se copia a la entrada a la salida, mientras que también registrar en un archivo.
El Uso De Procmail.Procmail es tu amigo.Procmail es hecho para este tipo de cosas.
Si desea analizar en la secuencia de comandos:
while /bin/true; do
read LINE
echo $LINE > $OUTPUT
done
Pero usted puede simplemente utilizar gato.Si el gato se pone algo en la stdin, le echo a la salida estándar (stdout), así que tendrás que dirigir a cat >$SALIDA.Estos harán lo mismo.El segundo funciona para los datos binarios también.
Si quieres un script de shell, intente esto:
#!/bin/sh
exec cat >/path/to/file
Si exim o sendmail es lo que está escrito en el tubo, a continuación, procmail es una buena respuesta, porque voy a dar el bloqueo de archivos/serialización y usted puede poner todo en el mismo archivo.
Si sólo quieres escribir en un archivo, a continuación, - t > /tmp/log.$$ o - cat > /tmp/log.$$ podría ser lo suficientemente buena.
Uso <<command>> | tee <<file>>
para la tubería de un comando <<command>>
en un archivo <<file>>
.
Esto también mostrará la salida.
Eh?Supongo, no entiendo la pregunta?
No puede usted acaba de terminar su tubo en un >> ~file
Por ejemplo
echo "Foobar" >> /home/mo/dumpfile
se anexará Foobar a la dumpfile (y crear dumpfile si es necesario).No hay necesidad de un script de shell...Es que lo que estaban buscando?
si usted no se preocupan por producir el resultado
cat - > filename
o
cat > filename