Pipeline (software): differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Rivisto: rivisti wikilink, messi in corsivo i termini stranieri, uso di <tt> per i nomi di file |
Tolto corsivo per "file". Sostituito "come input in un altro [programma]" con "come dati in ingresso ad un altro [programma] |
||
Riga 1:
In [[informatica]], il concetto di '''pipeline''' (in inglese, ''tubatura'' — composta da più elementi collegati — o ''condotto'') viene utilizzato per indicare un insieme di [[componente software|componenti software]] tra loro collegati a cascata in modo che il risultato prodotto da uno degli elementi sia l'ingresso di quello immediatamente successivo. Le ''pipeline'' più semplici prevedono una semplice linea di componenti, mentre quelle più complesse possono prevedere "biforcazioni" (
Una ''pipeline'' inizia con uno o più elementi ''sorgenti'' (che non hanno ingressi, ma solo uscite), i cui dati fluiscono attraverso tutti gli altri elementi intermedi (''[[multiplexer]]'', ''[[demultiplexer]]'', filtri — che manipolano questo flusso di dati — e convertitori — che modificano il formato del flusso di dati) fino agli elementi ''destinatari'' (che non hanno uscite ma solo ingressi).
L'accezione più comune della parola ''pipeline'' indica un comando di ''[[Shell (informatica)|shell]]'' composito, in cui un programma ''sorgente'' genera un flusso di dati testuali che si propagano attraverso le ''[[pipe#Funzione pipe nella Shell|pipe]]'' ("|") tramite una sequenza di [[Filtro (Unix)|filtri]], fino ai ''destinatari'' (che spesso sono
A livello utente si incontra nell'uso della ''shell'', dove è spesso conveniente riutilizzare i dati uscenti di un programma come
In molti sistemi, come i discendenti del [[MS-DOS|Microsoft DOS]] e di [[Unix]], l'operazione via ''shell'' è gestita interponendo una barra verticale ("|") fra le invocazioni dei due programmi.
Riga 14:
cut -d : -f 1 /etc/passwd | grep foo
trova tutti gli utenti in <tt>/etc/passwd</tt> che hanno la stringa "<tt>foo</tt>" all'interno del loro [[nome utente]]. Il comando '''[[Cut (Unix)|cut]]''' estrae il primo campo di ciascuna linea dal
Un altro esempio di ''pipeline'', che visualizza sul terminale i numeri da 1 a 13:
Riga 24:
=== Inizio della ''pipeline'' ===
Programmi che vengono spesso utilizzati per creare il flusso di dati da inviare ad una ''pipeline'':
* [[Find (Unix)|find]] (individua i
* [[Cat (Unix)|cat]] (legge un
* [[tail]] -f (legge le righe che vengono aggiunte ad un
=== Fine della ''pipeline'' ===
Una ''pipeline'' può terminare nei modi che seguono:
* scrivendo il risultato sul terminale;
* effettuando la [[redirezione]] dei dati su di un
* con un ''pager'' come ad esempio ''[[More (Unix)|more]]'' o ''[[Less (Unix)|less]]'', che permettono di leggere un
* con ''[[xargs]]'', che trasforma un flusso di dati in parametri sulla riga di comando.
|