Le strutture di controllo nella programmazione bash come in qualsiasi linguaggio di programmazione,sono la panacea di qualsiasi programmatore , permettono di decidere quale porzioni di codice eseguire e quante volte eseguirlo.
Oggi parleremo di:
if-then
il costrutto if-then e molto semplice da utilizzare la sintassi del comando è questa;
if [condizione]; then
comandi
fi
creiamo un piccolo script per capire meglio :
come al solito apriamo un file di testo scriviamo le righe di codice e poi salviamo con if-then.
#!/bin/bash
# script sull'utilizzo del comando if
# richiesta di una variabile tramite il comando read
echo "DIGITA UN NUMERO"
read numero
if [ $numero -eq 4 ]; then
echo "ai dicitato il numero 4"
else
echo "non ai digitato il numero 4"
fi
in questo piccolo script troviamo pure l'operatore eq che significa uguale, nelle strutture condizionali gli operatori sono molto importanti possiamo utilizzare, operatori numerici, operatori su stringhe e operatori su file.
parliamo un po degli operatori che si utilizzano nelle strutture di controllo.
operatori stringa:
uguaglianza
if [ “stringa1” == “stringa2” ]
diverso
if [ "stringa1" =! "sringa2" ]
minore di
if [ “stringa1” < “stringa2” ]
maggiore di
if [ “stringa1” > “stringa2” ]
operatori sui numeri:
numero1 <>
if [ numero1 -lt numero2 ]
se numero1 <= numero2
if [ numero1 -le numero 2]
se numero 1 > numero 2
if [ numero1 -lt numero2 ]
se numero 1 >= numero 2
if [ numero1 -ge numero2 ]
se numero 1 = numero 2
if [ numero1 -eq numero2 ]
operatori su file.
se il file estiste:
if [ -z file ]
se il file esiste ed è una directory:
if [ -d file ]
se il file esiste ed non è un file speciale:
if [ -f file ]
se il file esiste e non è vuoto:
if [ -s file ]
Nell'istruzione if si può utilizzare la forma elif:
if [ condizione ]; then
comandi
elif [condizione ]; then
comandi
fi
modifichiamo lo script precedente ed inseriamo la forma elif;
#!/bin/bash
# script sull'utilizzo del comando if
# richiesta di una variabile tramite il comando read
# utilizzeremo pure il comando elif
echo "digita un numero"
read numero
if [ $numero -eq 4 ]; then
echo "ai dicitato il numero 4"
elif [ $numero -ne 4 ]; then
echo "non ai digitato il numero 4"
fi
rispetto al primo script abbiamo inserito la condizione espressa in elif che si può sintetizzare così:
se numero diverso da 4 stampa “non ai dicitato il numero 4”
nella prossima lezione parleremo del costrutto for e while.