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: Multitasking
Up: Standard Input e Standard
Previous: Redirezione dell'input
Eugenia Franzoni
1998-09-29