RedirezioneLa redirezione, in informatica, è la deviazione dei canali standard (standard input, standard output e standard error) di un dato comando verso destinazioni (o da sorgenti, nel caso dello standard input) che sono diverse da quelle predefinite. EsempiLa redirezione è tipica di molte shell testuali, ed in esse si può effettuare inserendo appositi caratteri di redirezione tra i comandi. La sintassi tipica è la seguente: comando > nome_file Nell'esempio precedente viene eseguito comando ed il suo standard output viene scritto nel file nome_file. In modo simile si può fornire ad un comando dei dati sullo standard input: comando < nome_file In questo caso comando viene eseguito elaborando i dati presenti nel file nome_file. Da notare che lo standard output di un comando può essere fornito direttamente come standard input di un comando successivo interponendo tra essi una barra verticale (" comando1 | comando2 Qui viene eseguito comando1 ed il suo output diventa l'input per comando2 (il cui output può essere a sua volta ridirezionato). In questo caso si parla di pipeline software. Funzione "appendi"In bash, come in altre shell testuali, è possibile usare dei caratteri di redirezione che aggiungono lo standard output del comando al termine di un file invece di sovrascriverne il contenuto. Ad esempio: comando >> nome_file aggiunge (append in inglese) l'output di comando al contenuto del file nome_file. Se esso non esiste, sarà creato. Questa funzione viene tipicamente usata negli script di shell per realizzare dei file di log che tengono traccia delle attività svolte. Funzione "here document" ("documento sul posto")Nelle shell testuali dei sistemi Unix e Unix-like è normalmente disponibile anche un tipo di redirezione che permette di specificare direttamente del testo su più righe come standard input ad un comando. Ad esempio: comando << marcatore linea1 linea2 .. marcatore marcatore è una singola parola arbitraria (tipicamente Normalmente il testo è soggetto alla sostituzione di variabili e di comandi tipiche delle shell testuali, tranne quando marcatore è specificato tra virgolette doppie o apici singoli. Ad esempio: numero=42 cat << EOF Il numero è $numero La data di oggi è `date` EOF fornisce a cat il testo compreso tra le due occorrenze di Voci correlateCollegamenti esterni
|