next up previous contents index
Next: Multitasking Up: Standard Input e Standard Previous: Redirezione dell'input

   
Soluzione: le pipe

Molti comandi UNIX producono una grande quantità di informazioni: per esempio, non è strano per un comando come ls /usr/bin produrre più output di quello che potete vedere su una sola schermata. Per riuscire a vedere tutte le informazioni di un comando come ls /usr/bin, è necessario usare un altro comando Unix, chiamato more .6.4 more si ferma ad ogni videata di informazioni. Per esempio, more < /etc/rc mostra il file /etc/rc, esattamente come farebbe cat /etc/rc, eccetto che vi permette di leggerlo. more permette anche la forma more /etc/rc, ed è questo il modo normale di invocarlo. Comunque, questo non risolve il problema che ls /usr/bin mostra più informazioni di quelle che potete vedere. more < ls /usr/bin non funziona--la redirezione dell'input funziona solamente con i file, non con i comandi! Potreste fare questo:
80#80
UNIX dà un modo più pulito per fare la stessa cosa: si usa il comando ls /usr/bin | more. Il carattere ``|'' indica una pipe (conduttura). Come una conduttura dell'acqua, una pipe UNIX controlla il flusso. Invece di acqua, stiamo controllando il flusso di informazioni! Uno strumento utile con le pipe sono i programmi chiamati filtri . Un filtro è un programma che legge lo standard input, lo elabora in qualche modo e manda i risultati sullo standard output. more è un filtro--legge i dati che provengono dallo standard input e li visualizza sullo standard output una videata alla volta, permettendovi di leggere il file. more non è un granché come filtro, dato che il suo output non può essere usato come input per un altro programma. Altri filtri sono i programmi cat , sort , head  e tail . Per esempio, se volete leggere solo le prime dieci linee dell'output di ls, potete usare ls /usr/bin | head.  

next up previous contents index
Next: Multitasking Up: Standard Input e Standard Previous: Redirezione dell'input
Eugenia Franzoni
1998-09-29