Els bucles són una part fonamental de qualsevol llenguatge de programació, i Bash no és una excepció. Els bucles permeten executar un bloc de codi repetidament fins que es compleixi una condició específica. En aquest tema, aprendrem sobre els diferents tipus de bucles en Bash i com utilitzar-los.

Tipus de Bucles en Bash

  1. for loop: Itera sobre una seqüència de valors.
  2. while loop: Executa un bloc de codi mentre una condició sigui certa.
  3. until loop: Executa un bloc de codi fins que una condició sigui certa.
  4. select loop: Proporciona una interfície de menú simple per a l'usuari.

  1. for loop

El bucle for s'utilitza per iterar sobre una seqüència de valors, com ara una llista d'elements o un rang de números.

Sintaxi

for variable in list
do
    # Bloc de codi
done

Exemple

#!/bin/bash

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

Explicació

  • for i in 1 2 3 4 5: El bucle for iterarà sobre els valors 1, 2, 3, 4 i 5.
  • do ... done: El bloc de codi dins d'aquestes paraules clau s'executarà per a cada valor de la llista.
  • echo "Número: $i": Imprimeix el valor actual de i.

  1. while loop

El bucle while executa un bloc de codi mentre una condició sigui certa.

Sintaxi

while [ condició ]
do
    # Bloc de codi
done

Exemple

#!/bin/bash

contador=1

while [ $contador -le 5 ]
do
    echo "Número: $contador"
    ((contador++))
done

Explicació

  • contador=1: Inicialitza la variable contador a 1.
  • while [ $contador -le 5 ]: El bucle while continuarà executant-se mentre contador sigui menor o igual a 5.
  • echo "Número: $contador": Imprimeix el valor actual de contador.
  • ((contador++)): Incrementa el valor de contador en 1.

  1. until loop

El bucle until és similar al while, però s'executa fins que la condició sigui certa.

Sintaxi

until [ condició ]
do
    # Bloc de codi
done

Exemple

#!/bin/bash

contador=1

until [ $contador -gt 5 ]
do
    echo "Número: $contador"
    ((contador++))
done

Explicació

  • contador=1: Inicialitza la variable contador a 1.
  • until [ $contador -gt 5 ]: El bucle until continuarà executant-se fins que contador sigui major que 5.
  • echo "Número: $contador": Imprimeix el valor actual de contador.
  • ((contador++)): Incrementa el valor de contador en 1.

  1. select loop

El bucle select proporciona una interfície de menú simple per a l'usuari.

Sintaxi

select variable in list
do
    # Bloc de codi
done

Exemple

#!/bin/bash

PS3="Selecciona una opció: "

select fruita in Poma Taronja Plàtan Sortir
do
    case $fruita in
        Poma)
            echo "Has seleccionat Poma."
            ;;
        Taronja)
            echo "Has seleccionat Taronja."
            ;;
        Plàtan)
            echo "Has seleccionat Plàtan."
            ;;
        Sortir)
            break
            ;;
        *)
            echo "Opció no vàlida."
            ;;
    esac
done

Explicació

  • PS3="Selecciona una opció: ": Estableix el prompt per al menú.
  • select fruita in Poma Taronja Plàtan Sortir: Crea un menú amb les opcions Poma, Taronja, Plàtan i Sortir.
  • case $fruita in ... esac: Executa diferents blocs de codi segons l'opció seleccionada.
  • break: Surt del bucle select quan l'usuari selecciona "Sortir".

Exercicis Pràctics

Exercici 1: Bucle for

Escriu un script que imprimeixi els números de l'1 al 10 utilitzant un bucle for.

Solució

#!/bin/bash

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

Exercici 2: Bucle while

Escriu un script que demani a l'usuari que introdueixi un número i que imprimeixi tots els números des de l'1 fins al número introduït utilitzant un bucle while.

Solució

#!/bin/bash

read -p "Introdueix un número: " num
contador=1

while [ $contador -le $num ]
do
    echo "Número: $contador"
    ((contador++))
done

Exercici 3: Bucle until

Escriu un script que demani a l'usuari que introdueixi un número i que imprimeixi tots els números des del número introduït fins a l'1 utilitzant un bucle until.

Solució

#!/bin/bash

read -p "Introdueix un número: " num

until [ $num -lt 1 ]
do
    echo "Número: $num"
    ((num--))
done

Exercici 4: Bucle select

Escriu un script que mostri un menú amb les opcions "Afegir", "Eliminar", "Modificar" i "Sortir". L'script ha de realitzar una acció diferent per a cada opció seleccionada.

Solució

#!/bin/bash

PS3="Selecciona una opció: "

select opcio in Afegir Eliminar Modificar Sortir
do
    case $opcio in
        Afegir)
            echo "Has seleccionat Afegir."
            ;;
        Eliminar)
            echo "Has seleccionat Eliminar."
            ;;
        Modificar)
            echo "Has seleccionat Modificar."
            ;;
        Sortir)
            break
            ;;
        *)
            echo "Opció no vàlida."
            ;;
    esac
done

Conclusió

En aquesta secció, hem après sobre els diferents tipus de bucles en Bash: for, while, until i select. Hem vist com utilitzar-los amb exemples pràctics i hem practicat amb alguns exercicis. Els bucles són una eina poderosa que ens permeten automatitzar tasques repetitives i gestionar fluxos de treball de manera eficient. En el proper mòdul, explorarem les funcions en Bash, que ens permetran organitzar i reutilitzar el codi de manera més eficient.

© Copyright 2024. Tots els drets reservats