GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué sale esta canalización de shell?

La tubería funciona conectando la salida de un proceso A a la entrada de B. La conexión se puede romper cuando

  • A cierra su salida. B obtendrá EOF.
  • B cierra su entrada. A obtendrá un error de que la salida ya no está disponible cuando intente escribir el siguiente byte.

Dado que estos dos casos son tan comunes, el manejo se ha trasladado a la biblioteca estándar de C.


head cierra el archivo de entrada después de leer la cantidad requerida. cuando una tubería se cierra por un lado, el otro lado recibe errores de escritura; esto causa base64 para cerrar, lo que a su vez hace que cat para cerrar.


Después de base64 emite 10 bytes, head obtiene suficientes entradas y salidas. Cuando el primero intente generar más bytes, recibirá la señal SIGPIPE y, por lo tanto, también saldrá. Por la misma razón, cat saldrá a su vez.


Linux
  1. ¿Por qué la sustitución de comandos de Shell engulle un carácter de nueva línea final?

  2. ¿Por qué Bashrc comprueba si el shell actual es interactivo?

  3. ¿Por qué este "mientras se lee" funciona en una terminal, pero no en un script de Shell?

  4. ¿Por qué Ctrl + V no se pega en Bash (shell de Linux)?

  5. ¿Por qué esta expresión regular no funciona en Linux?

¿Por qué clang genera texto ininteligible cuando se redirige?

¿Por qué el usuario 'bin' necesita un shell de inicio de sesión?

¿Por qué slabtop -o solo devuelve las primeras 23 líneas cuando se canaliza el comando?

Shell Script while bucle:[alrededor de una canalización que falta `]'

¿Por qué rm manual dice que podemos ejecutarlo sin ningún argumento, cuando esto no es cierto?

Reenvío de IP =¿cuándo y por qué es necesario?