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
- for loop: Itera sobre una seqüència de valors.
- while loop: Executa un bloc de codi mentre una condició sigui certa.
- until loop: Executa un bloc de codi fins que una condició sigui certa.
- select loop: Proporciona una interfície de menú simple per a l'usuari.
- 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
Exemple
Explicació
for i in 1 2 3 4 5
: El buclefor
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 dei
.
- while loop
El bucle while
executa un bloc de codi mentre una condició sigui certa.
Sintaxi
Exemple
Explicació
contador=1
: Inicialitza la variablecontador
a 1.while [ $contador -le 5 ]
: El buclewhile
continuarà executant-se mentrecontador
sigui menor o igual a 5.echo "Número: $contador"
: Imprimeix el valor actual decontador
.((contador++))
: Incrementa el valor decontador
en 1.
- until loop
El bucle until
és similar al while
, però s'executa fins que la condició sigui certa.
Sintaxi
Exemple
Explicació
contador=1
: Inicialitza la variablecontador
a 1.until [ $contador -gt 5 ]
: El bucleuntil
continuarà executant-se fins quecontador
sigui major que 5.echo "Número: $contador"
: Imprimeix el valor actual decontador
.((contador++))
: Incrementa el valor decontador
en 1.
- select loop
El bucle select
proporciona una interfície de menú simple per a l'usuari.
Sintaxi
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 bucleselect
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ó
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.
Curs de Programació en Bash
Mòdul 1: Introducció a Bash
- Què és Bash?
- Configuració del teu Entorn
- Navegació Bàsica per la Línia de Comandes
- Entenent la Shell
Mòdul 2: Comandes Bàsiques de Bash
- Operacions amb Fitxers i Directoris
- Comandes de Processament de Text
- Permisos i Propietat de Fitxers
- Redirecció i Piping
Mòdul 3: Conceptes Bàsics de Scripting
Mòdul 4: Scripting Intermedi
Mòdul 5: Tècniques Avançades de Scripting
- Operacions Avançades amb Fitxers
- Gestió de Processos
- Gestió d'Errors i Depuració
- Expressions Regulars
Mòdul 6: Treballant amb Eines Externes
Mòdul 7: Automatització i Programació
- Treballs Cron
- Automatització de Tasques
- Scripts de Còpia de Seguretat i Restauració
- Monitorització i Registre
Mòdul 8: Millors Pràctiques i Optimització
- Escriure Codi Llegible
- Optimització de Scripts en Bash
- Consideracions de Seguretat
- Control de Versions amb Git