28.05.2013 Views

LOA HackLab - Autistici

LOA HackLab - Autistici

LOA HackLab - Autistici

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

44 C4 La Shell<br />

in modo che l’output di un comando diventi l’input del comando successivo. Questo<br />

meccanismo è molto utile nel caso si vogliano utilizzare dei filtri.<br />

La redirezione dell’input e dell’output avviene rispettivamente con i simboli “minore”<br />

(). Se vogliamo ad esempio salvare l’output di ls -l all’interno di un<br />

file possiamo usare la forma:<br />

$ ls -l > files<br />

$ cat files<br />

total 9032<br />

-rw-r--r-- 1 tx0 tx0 19685 Mar 9 2001 corso_perl_loa.tgz<br />

-rw-r--r-- 1 tx0 tx0 4424 Feb 14 2001 corsoperl<br />

-rw-r--r-- 1 tx0 tx0 0 Oct 21 11:49 files<br />

drwx--S--- 2 tx0 tx0 4096 Feb 5 2001 mail<br />

drwx--S--- 2 tx0 tx0 4096 May 9 2000 nsmail<br />

-rw-r--r-- 1 tx0 tx0 2379 Feb 25 2001 perl.mappings.vim<br />

-rw-r--r-- 1 tx0 tx0 265014 Jan 21 2001 underground.txt.bz2<br />

-rw-r--r-- 1 tx0 tx0 8650 Dec 3 2000 wangtek5525es.htm<br />

-rw-r--r-- 1 tx0 tx0 11824 Feb 7 2001 yprefcard.ps<br />

$<br />

Notate che anche il file “files” è contenuto nel listato. Questo perché prima la shell<br />

crea il file e poi esegue il comando (ls -l) il cui output andrà rediretto nel file<br />

Il meccanismo di piping dell’output si realizza utilizzando il carattere |, detto appunto<br />

“pipe”. La sintassi è la seguente:<br />

$ ls -la | wc -l<br />

19<br />

$<br />

Il comando non è forse dei più riusciti 3 , ci dà sicuramente un’idea del funzionamento<br />

del meccanismo.<br />

4.4 Sintassi di programmazione<br />

Le Bourne Shell hanno alcune parole chiave riservate per la programmazione della shell.<br />

La keyword if server a eseguire uno o più comandi se una condizione è verificata. Se la<br />

condizione è verificata, la keyword then delimita l’inizio dei comandi da eseguire. L’elenco<br />

dei comandi dura sino alla keyword fi (ossia if al contrario. . . ). La condizione è compresa<br />

fra parentesi quadre. Se si vuole fornire un elenco di comandi da eseguire in caso in cui<br />

la condizione non fosse verificate, si può usare la keyword else.<br />

3 L’idea sarebbe quella di contare il numero dei file presenti nella directory corrente tramite il<br />

conteggio delle linee (wc -l) date come output da ls -la; il punto è che l’output contiene<br />

anche la linea con la dimensione totale della directory e le due linee iniziali inerenti la<br />

directory corrente e quella precedente

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!