Cerca nel sito:
ricerca
avanzata

Frasi Celebri...

La scienza pu? essere solo ci? che ?, non ci? che potrebbe essere.

Albert Einstein 

Sondaggio:

Se oggi si tornasse a votare, voterei per...

Forza Italia
Alleanza Nazionale
Rifondazione Comunista
Democratici di Sinistra
Lega Nord
Verdi
Radicali
Altro

visualizza risultati


 

Redirezione dell'output e dell'input

Una caratteristica importante di UNIX è la capacità di redirigere l'output. Questo vi permette, invece di vedere i risultati di un comando, di registrarli in un file o di mandarli direttamente alla stampante. Per esempio, per redirigere l'output del comando ls /usr/bin, metteremo un segno > alla fine della linea e diremo in quale file vogliamo che sia messo l'output:

/home/larry$ ls
/home/larry$ ls -F /usr/bin > lista
/home/larry$ ls
lista
/home/larry$

Come potete vedere, invece di scrivere i nomi di tutti i file, il comando crea un nuovo file nella home directory; proviamo a vederlo con il comando cat. Se tornate indietro, ricorderete che cat era un comando apparentemente inutile che copiava quello che scrivevate (lo standard input) sul terminale (standard output). cat può anche stampare un file sullo standard output se gli date il file come parametro:

/home/larry$ cat lista
...
/home/larry$

L'output esatto del comando ls /usr/bin appare nel contenuto di lista. Tutto bene, anche se questo non ha risolto il problema originale (vedi paragrafo precedente).

Comunque, cat fa qualcosa di interessante quando il suo output viene rediretto. Cosa fa il comando cat lista > nuovofile? Normalmente, > nuovofile dice "prendere tutto l'output del comando e metterlo in nuovofile". L'output del comando cat lista è il file lista. In questo modo abbiamo inventato un metodo nuovo (e non molto efficiente) per copiare i file.

E che dire del comando cat > pippo? cat da solo legge ogni linea inserita dal terminale (standard input) e stampa tutto nello standard output finché non legge + . In questo caso, lo standard output è stato rediretto nel file pippo. Adesso cat è servito come un rudimentale editor (programma per scrittura testi):

/home/larry$ cat > pippo
Oggi è una bella giornata.
premete Ctrl+d

Abbiamo creato quindi il file pippo che contiene la frase "Oggi è una bella giornata". Un altro uso del versatile comando cat è concatenare più file insieme: cat stampa tutti i file che gli vengono passati come parametro, un file dopo l'altro. Così il comando cat lista pippo stampa il listato della directory /usr/bin, e poi la nostra frase. In questo modo, il comando cat lista pippo > listaepippo creerà un nuovo file contenente sia lista sia pippo.

Come per lo standard output, è anche possibile redirigere lo standard input. Un programma, invece di leggere dalla tastiera, legge da un file. Siccome la redirezione dell'input è collegata alla redirezione dell'output, sembra naturale che il carattere speciale per la redirezione dell'input sia <. Anche questo deve essere usato dopo il comando da eseguire.

La redirezione dell'input è utile generalmente se avete un file di dati e un comando si aspetta dell'input dallo standard input. La maggior parte dei comandi permettono di specificare un file su cui operare, così < non è usato nelle normali operazioni giornaliere come altre tecniche.


successivo
–«  INDICE  »–

 

 

 

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