web-dev-qa-db-fra.com

Que signifie "|" signifie dans une ligne de commande de terminal?

Désolé de l'avoir affiché ici, mais Google fait un très mauvais travail lors de la recherche de symboles.

Que signifie le "|" signifie en:

"some string" | someexecutable.py
27
Mohit

C'est le symbole du tuyau. Il sépare deux programmes sur une ligne de commande (voir Pipelines dans le manuel bash), et la sortie standard du premier programme (sur le LHS du pipe) est connecté à l'entrée standard du deuxième programme (sur le RHS du tuyau).

Par exemple:

who | wc -l

vous donne un compte du nombre de personnes ou de sessions connectées à votre ordinateur (plus un pour la ligne d'en-tête de who). Pour actualiser la ligne d'en-tête:

who | sed 1d | wc -l

L'entrée de sed provient de who, et la sortie de sed va à wc.

L'appel système sous-jacent est pipe(2) utilisé conjointement avec fork() , dup2() et les appels système exec*() .

25
Jonathan Leffler

Cela s'appelle pipe . Il donne la sortie standard de la première commande ("some string") comme stdin à la deuxième commande (someexecutable.py).

9
P.P.

| est une pipe. Il envoie la sortie d'une commande comme entrée de la suivante. Il est expliqué ici http://www.ibm.com/developerworks/linux/library/l-lpic1-v3-103-4/#3-pipes

6
mehulved