GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué recibo gato:error de escritura:tubería rota rara vez y no siempre?

El motivo es que la tubería está cerrada por grep cuando todavía tiene algunos datos para leer desde cat . La señal SIGPIPE es atrapado por el gato y sale.

Lo que suele suceder en una canalización es que el shell ejecuta cat en un proceso y grep en otro. La salida estándar de cat está conectado al extremo de escritura de la canalización y la entrada estándar de grep hasta el final de la lectura. Lo que pasó fue grep golpeó una búsqueda de patrón que no existía y salió de inmediato, lo que provocó que se cerrara el extremo de lectura de la canalización, lo que cat no le gusta ya que tiene algunos datos más para escribir en la canalización. Dado que las acciones de escritura le suceden a otro extremo que ha sido cerrado, SIGPIPE es atrapado por el cat en el que sale inmediatamente.

Para un caso tan trivial, podría eliminar el uso de canalización por completo y ejecutarlo como grep "pattern" file.txt cuando el contenido del archivo está disponible a través de la entrada estándar de grep en el que podría leer.


Linux
  1. Por qué obtienes cp:error de directorio omitido en Linux y cómo resolverlo

  2. Linux:¿por qué usamos Su y no solo Su?

  3. ¿Por qué Bash no almacena comandos que comienzan con espacios?

  4. Corte/Grep Y Df -h?

  5. ¿Por qué Grep -o -w no me da la salida esperada en Mac Os X?

¿Por qué ve el error:no se encontró el complemento "xyz"?

¿Por qué es Rm -rf y no Rmdir -rf?

¿Por qué Rsync falla con tubería rota (32), error en el zócalo Io (código 10) en Io.c (820)?

Reparación de error de tubería rota con conexión SSH

¿Por qué chmod +w no da permiso de escritura a otro(o)?

¿Por qué mi crontab no funciona y cómo puedo solucionarlo?