Cerca nel sito:
ricerca
avanzata

Frasi Celebri...

Se mi piace la tv? Si', perche' si spegne facilmente.

Robert Mitchum 

Sondaggio:

Con quale presentatrice/showgirl passereste una "notte di fuoco"?

Paola Barale
Patrizia Rossetti
Paola Perego
Licia Col?
Milli Carlucci
Gabriella Golia
Paola Saluzzi

visualizza risultati


 

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 (Si chiama more perché il prompt che stampava originariamente era -more-. In molte versioni di Linux, il comando more è identico ad un comando più avanzato che fa tutto quello che fa more e molto di più. Come prova che i programmatori non hanno il senso dell'umorismo, l'hanno chiamato less !). 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:

/home/larry$ ls /usr/bin > temp-ls
/home/larry$ more temp-ls
...
/home/larry$ rm temp-ls

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.

 

successivo
–«  INDICE  »–

 

 

 

 
Powered by paper&pencil (carta&matita ) - Copyright © 2001-2019 Cataldo Sasso