Programmare la shell Unix parte 3

Programmare la shell Unix parte 3 : in questa lezione analizzeremo le strutture di controllo.

Le strutture di controllo servono a specificare sequandoin quale ordine e quante volte devono essere eseguite le istruzioni. A differenza di molti linguaggi di programmazione, come il C o Java, negli script della shell Unix non si utilizzano le parentesi graffe { } per individuare un blocco di codice ma si utilizzano parole chiave .

if

#!/bin/bash
n=3;
if [[ $n>0 ]]; then
    echo "numero positivo";
fi

if… elif… else…

La parola chiave elif è l’abbreviazione di else if , il suo contenuto viene eseguito se la condizione dell’ if precedente non restituiva true e quella invece al suo interno si. L’ultimo else viene eseguito nel caso che tutte le condizioni precedenti siano false.

#!/bin/bash
n=-3;
if [[ $n > 0 ]]; then
    echo "numero positivo";
elif [[ $n < 0 ]]; then
    echo "numero negativo";
else
    echo "numero non positivo e non negativo";
fi

case

#!/bin/bash
classe='Terza';
case $classe in
( Terza )
    echo "Programmazione strutturata";;
( Quarta )
    echo "Programmazione ad oggetti";;
( Quinta )
    echo "Programmazione web";;
( * )
    echo "Valore non presente";
esac

Nota che il secondo ; nelle linee 5, 7 e 9 rappresenta la classica istruzione break che impedisce ai case successivi di essere eseguiti ed ovviamente non va inserito nel case ( * ) che rappresenta il case di default.

while

Il ciclo continua mentre la condizione è true

#!/bin/bash
i=1;
echo "I primi 10 numeri naturali";
while [ $i -le 10 ]; do
    echo "$i";
    ((i++))
done

until

In questo caso il ciclo continua finché la condizione è true

#/bin/bash
i=10;
echo "Conteggio alla rovescia";
until [ $i -le 1 ]; do
    echo $i;
    ((i--))
    sleep 1
done

L’istruzione sleep 1 aspetterà un secondo

for

#/bin/bash
echo "Tabellina del numero 7";
n=7;
i=1;
for (( i=1;i<=10;i++ ))
do
    ((res=n*i))
    echo $res;
done

Nota che le operazioni aritmetiche vengono fatte tra doppie parentesi tonde

for in

#/bin/bash
echo "Elenco di animali da file";
for animale in $( sort animali.txt ) 
do 
    echo $animale;
done

Ricorda che nella programmazione della shell UNIX è fondamentale rispettare gli spazi nelle varie strutture di controllo.

Pubblicato da Carlo Contardi

Carlo Contardi, docente di informatica e sviluppatore Full Stack, condivide la sua passione per la programmazione e l’informatica attraverso il suo blog Space Coding. Offre preziosi consigli e soluzioni pratiche a chi vuole imparare a programmare o migliorare le proprie abilità. 🚀👨‍💻

Translate »