sabato 21 maggio 2011

Script per shell - if... then...

Si tratta della classica struttura di controllo. L'esito del test sulla condizione data, che segue la parola chiave if, farà eseguire un preciso insieme di istruzioni. La condizione da valutare va racchiusa all'interno di parentesi quadre, le istruzioni subito dopo la parola chiave then verranno eseguite solo se la condizione nell'if è vera. In caso contrario, se presente, verrà eseguito l'altro set di istruzioni, quello che segue la parola chiave else. La sintassi è la seguente:
if [ condizione ]
then
...
fi
Esempio:
#!/bin/bash
#If... then...
echo -n "Inserisci il primo numero: "
read a
echo -n "Inserisci il secondo numero: "
read b
if [ ${a} -gt ${b} ]
then
echo "$a è maggiore di $b"
else
echo "$a è minore di $b"
fi
Notare la raccolta dell'input con il comando read, che scrive nella variabile il contenuto nel buffer dello standard input (la tastiera). Lo script non analizza tuttavia tutti i casi! Provate, ad esempio, a dare come input due numeri uguali. L'output coinciderà con l'ultima istruzione echo! E' possibile annidare più condizioni:
#!/bin/bash
#If... then...
echo -n "Inserisci il primo numero: "
read a
echo -n "Inserisci il secondo numero: "
read b
if [ ${a} -eq ${b} ]
then
echo "$a è uguale a $b"
else
if [ ${a} -gt ${b} ]
then
echo "$a è maggiore di $b"
else
echo "$a è minore di $b"
fi
fi
Qui, invece, un esempio che effettua un test su file:
#!/bin/bash
#Test su file
if [ $# -eq 1 ]
then
if [ -e $1 ]
then
echo "Il file $1 esiste!"
else
echo "Il file $1 non esiste!"
fi
else
echo "Indicare un nome di file!"
fi

Nessun commento:

Posta un commento