Bash: | (alias PIPE)

Seconda puntata con “Mondobash”, stavolta si parla di un’operatore e non di un comando, ovvero il | , meglio conosciuto col nome di pipe.

La scelta non e` casuale, e` un operatore usatissimo, inflazionatissimo, ed innegabilmente utilissimo. Ok, la frase sopra fa cagare, comunque non la tolgo ^_^ . Tornando IT, la sua funzione e` di redirigere un output, anche se forse il termine migliore sarebbe “concatenarlo”, e non un output qualsiasi, ma l’output dello schermo. Chi ha gia` fatto scripting in passato sapra` perfettamente e` possibile far scrivere su file di testo il risultato di un comando bash (o dos in windows), e questo puo` essere funzionale per un file di log, ma se pensate invece di voler utilizzare questo output a livello di codice, per utilizzarne una parte in un altro comando…beh potete usare | !

In un post riguardante l’upgrade a Ubuntu 7.04 ho utilizzato il comando lsb_release, che fornisce un output riguardante alla distro sulla quale ci si trova…il testo che produce non ha realmente importanza, sappiate comunque che resitisce un output su piu` linee definendo distributore, versione, codename etc. usando la seguente sintassi:

$ sudo lsb_release -a

Ora questo comando potrebbe venirvi comodo per molti motivi, diciamo pure che dovete creare uno script che varia comportamento in base alla “Codename” (un parametro che il comando sopra citato produce), perche` avete due distro differenti su PC diversi ed un comando bash richiede parametri personalizzati su entrambe. Per poterlo fare dovvrete trovare il modo di recuperare dall’output testo questo “Codename” e qui ci vengono in soccorso la pipe e grep (altro comando trattato in un post nella categoria Mondobash), nel seguente modo:

$ sudo lsb_release -a | grep Codename

Questa riga di bash restituisce su feisty “Codename: feisty” mentre su edgy “Codename: edgy”, su altre distro restituira` codename differenti ovviamente. L’importanza di passare un output da un comando a un altro potrete ben capire quanto sia comodo, permettendo di evitare l’uso di variabili ed esguire comandi a volte complessi senza per forza dover passare per un file di script con variabili e cose simili, ed al tempo stesso anche la sua comodita` nei file di script che consente di evitare l’uso di inutili variabili in molti punti. Inoltre ci permette grazie a grep ed altri tool di scremare in mezzo a output particolarmente “verbosi” piccole informazioni sul sitema che ci interessano, e questultimo e` l’uso piu` comune che se ne fa`.

Annunci
  1. naturally like your web site but you have to take a look
    at the spelling on quite a few of your posts. A number of
    them are rife with spelling issues and I to find it very bothersome to tell the reality on the other hand I will surely come back again.

  1. No trackbacks yet.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: