GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi ce pipeline shell sort-il ?

La tuyauterie fonctionne en connectant la sortie d'un processus A à l'entrée de B. La connexion peut être interrompue lorsque

  • A ferme sa sortie. B obtiendra EOF.
  • B ferme son entrée. A obtiendra une erreur indiquant que la sortie n'est plus disponible lorsqu'il essaiera d'écrire l'octet suivant.

Étant donné que ces deux cas sont si courants, la gestion a été déplacée dans la bibliothèque standard C.


head ferme le fichier d'entrée après avoir lu le montant requis. lorsqu'un tube est fermé d'un côté, l'autre côté reçoit des erreurs d'écriture ; cela cause base64 à fermer, ce qui provoque à son tour cat fermer.


Après base64 sort 10 octets, head obtient suffisamment d'entrées et de sorties. Lorsque le premier tente de sortir plus d'octets, il recevra le signal SIGPIPE et sortira donc aussi。Pour la même raison, cat sortira à son tour.


Linux
  1. Pourquoi la substitution de commande Shell engloutit-elle un caractère de fin de ligne ?

  2. Que signifie cette sortie de Xev ?

  3. Pourquoi ce "pendant la lecture" fonctionne-t-il dans un terminal, mais pas dans un script shell ?

  4. Pourquoi Ls -l affiche-t-il une taille différente de Ls -s ?

  5. Pourquoi Ctrl + V ne colle-t-il pas dans Bash (shell Linux) ?

Pourquoi l'option Ssh -t ajoute-t-elle Cr &Lf dans la sortie redirigée ?

Pourquoi "ls" nécessite-t-il un processus distinct pour l'exécution ?

TMOUT - Quitter automatiquement Unix Shell lorsqu'il n'y a pas d'activité

Pourquoi Linux affiche toujours ^C en appuyant sur Ctrl+C ?

Bash :Pourquoi le script parent ne se termine-t-il pas sur SIGINT lorsque le script enfant piège SIGINT ?

Pourquoi popen() invoque-t-il un shell pour exécuter un processus ?