Pipeline (software): differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m ha spostato Pipeline (Unix) a Pipeline software |
m v2.05 - Fixed using WP:WPCleaner (Wikilink uguali alla propria descrizione) |
||
(44 versioni intermedie di 38 utenti non mostrate) | |||
Riga 1:
{{F|sistema operativo|febbraio 2013}}
In [[informatica]], una '''pipeline''' (in inglese, tubo, condotto) è un comando di [[shell]] complesso, costituito da un programma che genera un flusso di dati testuali, una sequenza di [[Filtro (Unix)|filtri]] che manipolano questo flusso di dati, ed eventualmente un programma che gestisce il risultato. Questi programmi sono collegati tra loro tramite l'operatore [[pipe#Funzione pipe nella Shell|pipe]] ("|"), che in una riga di comando sigifica che lo standard output del un programma a sinistra dell'operatore è passato allo standard input del programma alla sua destra.▼
[[File:Pipeline-it.svg|thumb|Una pipeline di tre programmi eseguiti all'interno di un terminale ([[Exempli gratia|e.g.]] bash)|300x300px]]
In [[informatica]], il concetto di '''pipeline''' (in [[lingua inglese|inglese]], tubatura — composta da più elementi collegati — o condotto) viene utilizzato per indicare un insieme di componenti [[software]] collegati tra loro in cascata, in modo che il risultato prodotto da uno degli elementi ([[Output (informatica)|output]]) sia l'ingresso di quello immediatamente successivo ([[input]]).
== Descrizione ==
A livello utente si incontra nell'uso della [[shell]], dove è spesso conveniente riutilizzare i dati uscenti di un programma come input di un altro, ad esempio per applicare dei [[Filtro (Unix)|filtri]] o per visualizzare e manipolare i risultati in un programma interattivo.▼
Le ''pipeline'' più semplici prevedono una semplice linea di componenti, mentre quelle più complesse possono prevedere "biforcazioni" ([[multiplexer]] — elementi con più ingressi — o [[demultiplexer]] — elementi con più uscite).
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).
▲
▲A livello utente si incontra nell'uso della
== Pipeline in ambienti [[Unix]] ==▼
=== Esempi ===
Nei seguenti esempi di riga di comando lo ''standard output''
<syntaxhighlight lang="bash">
</syntaxhighlight>
Spesso i filtri costituiscono gli elementi successivi al primo in una ''pipeline''. ▼
▲Un altro esempio di pipeline, che visualizza sulla console i numeri da 1 a 13:
▲ while : ; do echo ; done | head -n 13 | nl -ba
Programmi che vengono spesso utilizzati per creare il flusso di dati da inviare ad una ''pipeline'':▼
* <code>[[Find (Unix)|find]]</code> (individua i file con certe caratteristiche)▼
* <code>[[Cat (Unix)|cat]]</code> (legge un file o un dispositivo)▼
* <code>[[tail]] -f</code> (legge le righe che vengono aggiunte ad un file)▼
=== Fine della ''pipeline'' ===
▲Spesso i filtri costituiscono gli elementi successivi al primo in una pipeline.
Una ''pipeline'' può terminare nei modi che seguono:
* scrivendo il risultato sul terminale;
* effettuando la [[redirezione]] dei dati su un [[file]];
* con un ''pager'' come ad esempio ''[[More (Unix)|more]]'' o ''[[Less (Unix)|less]]'', che permettono di leggere un file o un flusso di dati una pagina alla volta;
* con ''[[xargs]]'', che trasforma un flusso di dati in parametri sulla riga di comando.
▲Programmi che vengono spesso utilizzati per creare il flusso di dati da inviare ad una pipeline:
▲* [[find]] (individua i file con certe caratteristiche)
▲* [[cat]] (legge un file o un dispositivo)
▲* [[tail]] -f (legge le righe che vengono aggiunte ad un file)
▲=== Fine della pipeline ===
* [[Filtro (Unix)]]
* [[
* [[
== Collegamenti esterni ==
* {{FOLDOC|pipe|pipe}}
{{Portale|informatica}}
[[Categoria:Sistemi POSIX]]▼
|