2012-09-13 23 views
14

Lo siento por publicarlo aquí, pero Google hace un muy mal trabajo al buscar símbolos.¿Qué significa "|" significa en una línea de comando terminal?

¿Qué significa "|" significa en:

"some string" | someexecutable.py 
+2

http://en.wikipedia.org/wiki/Pipeline_(Unix) –

+1

La página del manual 'bash' explica el comportamiento en gran detalle: ¿hay algo que no entendiste allí? –

Respuesta

16

Es el símbolo de la tubería. Separa dos programas en una línea de comando (ver Pipelines en el manual bash), y la salida estándar del primer programa (en el LHS de la tubería) se conecta a la entrada estándar del segundo programa (en el RHS de la tubería)

Por ejemplo:

who | wc -l 

le da un recuento del número de personas o sesiones conectadas al ordenador (más uno para el encabezamiento de who). Para descartar la línea de cabecera:

who | sed 1d | wc -l 

La entrada a sed proviene de who, y la salida de sed va a wc.

La llamada de sistema subyacente se pipe(2) utiliza en conjunción con fork(), dup2() y las llamadas al sistema exec*().

7

Se llama pipe. Da el stdout del primer comando como el stdin al segundo comando.