2012-09-13 7 views
14

Siamo spiacenti per la pubblicazione qui, ma Google fa un lavoro molto brutto durante la ricerca di simboli.Che cosa significa "|" significa in una riga di comando del terminale?

Che cosa significa "|" significa in:

"some string" | someexecutable.py 
+2

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

+1

La pagina man di 'bash' spiega il comportamento in modo dettagliato - c'è qualcosa che non hai capito lì? –

risposta

16

È il simbolo del tubo. Separa due programmi su una riga di comando (vedere Pipelines nel manuale bash) e l'output standard del primo programma (sull'LHS della pipe) è collegato all'ingresso standard del secondo programma (sull'RHS della pipe).

Ad esempio:

who | wc -l 

ti dà un conteggio del numero di persone o sessioni collegati al computer (più uno per la riga di intestazione da who). Scontare la riga di intestazione:

who | sed 1d | wc -l 

L'input sed proviene da who, e l'uscita di sed va a wc.

La chiamata di sistema sottostante è pipe(2) utilizzato in combinazione con fork(), dup2() e le chiamate di sistema exec*().

7

Si chiama pipe. Fornisce lo stdout del primo comando come stdin al secondo comando.