Les estructures de control són fonamentals en qualsevol llenguatge de programació, incloent el scripting de shell en Linux. Aquestes estructures permeten controlar el flux d'execució del codi, fent-lo més dinàmic i capaç de prendre decisions basades en condicions específiques.

  1. Condicionals

1.1. if, elif, else

La instrucció if s'utilitza per executar un bloc de codi només si una condició és certa. Es pot complementar amb elif (abreviatura de "else if") i else per gestionar múltiples condicions.

Sintaxi:

if [ condició ]; then
    # codi a executar si la condició és certa
elif [ altra_condició ]; then
    # codi a executar si l'altra condició és certa
else
    # codi a executar si cap de les condicions anteriors és certa
fi

Exemple:

#!/bin/bash

echo "Introdueix un número:"
read num

if [ $num -gt 10 ]; then
    echo "El número és més gran que 10."
elif [ $num -eq 10 ]; then
    echo "El número és igual a 10."
else
    echo "El número és menor que 10."
fi

1.2. case

La instrucció case és útil per comparar una variable amb múltiples valors possibles, similar a la instrucció switch en altres llenguatges de programació.

Sintaxi:

case variable in
    valor1)
        # codi a executar si variable és igual a valor1
        ;;
    valor2)
        # codi a executar si variable és igual a valor2
        ;;
    *)
        # codi a executar si cap dels valors anteriors coincideix
        ;;
esac

Exemple:

#!/bin/bash

echo "Introdueix una lletra:"
read lletra

case $lletra in
    a)
        echo "Has introduït la lletra 'a'."
        ;;
    b)
        echo "Has introduït la lletra 'b'."
        ;;
    *)
        echo "Has introduït una lletra diferent de 'a' o 'b'."
        ;;
esac

  1. Bucles

2.1. for

El bucle for s'utilitza per iterar sobre una seqüència de valors, com ara una llista d'elements.

Sintaxi:

for variable in llista; do
    # codi a executar per a cada element de la llista
done

Exemple:

#!/bin/bash

for i in 1 2 3 4 5; do
    echo "Número: $i"
done

2.2. while

El bucle while s'executa mentre una condició sigui certa.

Sintaxi:

while [ condició ]; do
    # codi a executar mentre la condició sigui certa
done

Exemple:

#!/bin/bash

contador=1

while [ $contador -le 5 ]; do
    echo "Comptador: $contador"
    contador=$((contador + 1))
done

2.3. until

El bucle until és similar al while, però s'executa mentre la condició sigui falsa.

Sintaxi:

until [ condició ]; do
    # codi a executar mentre la condició sigui falsa
done

Exemple:

#!/bin/bash

contador=1

until [ $contador -gt 5 ]; do
    echo "Comptador: $contador"
    contador=$((contador + 1))
done

  1. Exercicis Pràctics

Exercici 1: Condicionals

Escriu un script que demani a l'usuari que introdueixi una edat i mostri un missatge diferent segons l'edat introduïda:

  • Si l'edat és menor de 18, mostra "Ets menor d'edat."
  • Si l'edat és entre 18 i 65, mostra "Ets adult."
  • Si l'edat és més gran de 65, mostra "Ets jubilat."

Solució:

#!/bin/bash

echo "Introdueix la teva edat:"
read edat

if [ $edat -lt 18 ]; then
    echo "Ets menor d'edat."
elif [ $edat -le 65 ]; then
    echo "Ets adult."
else
    echo "Ets jubilat."
fi

Exercici 2: Bucles

Escriu un script que mostri els números del 1 al 10 utilitzant un bucle for.

Solució:

#!/bin/bash

for i in {1..10}; do
    echo "Número: $i"
done

Exercici 3: case

Escriu un script que demani a l'usuari que introdueixi un dia de la setmana (en minúscules) i mostri un missatge diferent per a cada dia.

Solució:

#!/bin/bash

echo "Introdueix un dia de la setmana:"
read dia

case $dia in
    dilluns)
        echo "Avui és dilluns."
        ;;
    dimarts)
        echo "Avui és dimarts."
        ;;
    dimecres)
        echo "Avui és dimecres."
        ;;
    dijous)
        echo "Avui és dijous."
        ;;
    divendres)
        echo "Avui és divendres."
        ;;
    dissabte)
        echo "Avui és dissabte."
        ;;
    diumenge)
        echo "Avui és diumenge."
        ;;
    *)
        echo "Dia no vàlid."
        ;;
esac

Conclusió

Les estructures de control són essencials per escriure scripts de shell efectius i dinàmics. Amb les instruccions if, elif, else, case, i els bucles for, while, i until, pots controlar el flux del teu codi i gestionar diferents situacions de manera eficient. Practica aquests conceptes amb els exercicis proporcionats per consolidar el teu coneixement.

Domini de Linux: De Principiant a Avançat

Mòdul 1: Introducció a Linux

Mòdul 2: Comandes Bàsiques de Linux

Mòdul 3: Habilitats Avançades de la Línia de Comandes

Mòdul 4: Scripting de Shell

Mòdul 5: Administració del Sistema

Mòdul 6: Xarxes i Seguretat

Mòdul 7: Temes Avançats

Mòdul 8: Projectes Pràctics

© Copyright 2024. Tots els drets reservats