Avanti Indietro Indice

6. Condizionali

Le (espressioni, ndt) condizionali ti permettono di decidere se compiere o no un'azione. Tale decisione è presa valutando un'espressione.

6.1 Pura Teoria

Le (espressioni, ndt) condizionali hanno varie forme. La forma più basilare è: if espressione then istruzione dove 'istruzione' viene eseguita solamente se 'espressione' ha valore "vero". '2<1' è una espressione che ha valore "falso", mentre '2>1' ha valore "vero".

Le condizionali hanno altre forme come: if espressione then istruzione1 else istruzione2. Qui 'istruzione' è eseguita se 'espressione' è vera, altrimenti viene eseguita 'istruzione2'.

Ancora un'altra forma di (espressione, ndt) condizionale è: if espressione1 then istruzione1 else if espressione2 then istruzione2 else istruzione3. In questa forma è stato aggiunto solamente "ELSE IF 'espressioen2' THEN 'istruzione2'" che fa eseguire istruzione2 se espressione2 vale "vero". Il resto è come ti puoi immaginare (vedi le forme precedenti).

Una parola sulla sintassi:

La base per i costrutti 'if' nella bash è questa:

if [espressione];

then

codice eseguito se 'espressione' è vera.

fi

6.2 Esempio: Esempio basilare di condizionale if .. then

            #!/bin/bash
            if [ "foo" = "foo" ]; then
               echo expression evaluated as true
            fi
            

Il codice da eseguire se l'espressione tra parentesi quadre è vera può trovarsi solamente dopo la parola 'then' e prima del 'fi' che indica la fine del codice eseguito sotto condizione.

6.3 Esempio: Esempio basilare di condizionale if .. then ... else

            #!/bin/bash
            if [ "foo" = "foo" ]; then
               echo expression evaluated as true
            else
               echo expression evaluated as false
            fi
            

6.4 Esempio: Condizionali con variabili

            #!/bin/bash
            T1="foo"
            T2="bar"
            if [ "$T1" = "$T2" ]; then
                echo expression evaluated as true
            else
                echo expression evaluated as false
            fi
            

Avanti Indietro Indice