le istruzioni di controllo sono, come dice già il loro nome, un insieme di istruzioni che controllano (appunto) il funzionamento del programma sulla base del verificarsi o meno di date condizioni. Per prima cosa vediamo il funzionamento del costrutto if.
Una cosa molto importante da ricordare è che le condizioni vanno sempre inserite all’interno delle parentesi quadre [ e ] avendo cura di lasciare uno spazio bianco subito dopo l’apertura e subito prima della chiusura delle parentesi.
Partiamo da un esempio: poniamo di voler porre una domanda e di stampare a video un messaggio a seconda che la risposta sia corretta o meno:
#!/bin/sh
#Faccio la mia domanda
echo -n "Qual'è il nome di Garibaldi? "
#Recupero la risposta
read RISPOSTA
#Stampo a video il risultato
if [ ${RISPOSTA} = "giuseppe" ]
then
echo "Risposta esatta"
else
echo "Risposta sbagliata"
fi
Il costrutto if ha una sintassi molto semplice: si esprime la condizione e se essa risulta vera la shell esegue le istruzioni subito dopo then. In caso contrario è possibile specificare delle istruzioni opzionali alternative subito dopo else. Ogni costrutto if termina con fi.
Da notare che dopo la parentesi siamo andati a capo… ma avremmo anche potuto scrivere così:
if [ condizione ]; then
Invece di andare a capo, quindi, si aggiunge un punto e virgola alla chiusura della parenresi quadra. Il punto e virgola ha infatti la funzione di separatore di comandi che quindi possono essere così mesi silla stessa riga.
Nel caso in cui ci siano condizioni multiple è possibile usare elif al posto dei vari if ed esprimere una sola volta le istruzioni alterntative con else alla fine. Facciamo un altro esempio:
#!/bin/sh
#Faccio la mia domanda
echo -n "Quanti anni hai? "
#Recupero la risposta
read ANNI
#Stampo a video il risultato
if [ ${ANNI} -lt 10 ]
then
echo "Sei un bambino"
elif [ ${ANNI} -lt 18 ]
echo "Sei minorenne"
else
echo "Sei maggiorenne"
fi
nella prossima lezione vedremo una struttura di controllo alternativa ad if che può essere utile in determinate circostanze.