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.
- 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
fiExemple:
#!/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."
fi1.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
;;
esacExemple:
#!/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
- Bucles
2.1. for
El bucle for s'utilitza per iterar sobre una seqüència de valors, com ara una llista d'elements.
Sintaxi:
Exemple:
2.2. while
El bucle while s'executa mentre una condició sigui certa.
Sintaxi:
Exemple:
#!/bin/bash
contador=1
while [ $contador -le 5 ]; do
echo "Comptador: $contador"
contador=$((contador + 1))
done2.3. until
El bucle until és similar al while, però s'executa mentre la condició sigui falsa.
Sintaxi:
Exemple:
#!/bin/bash
contador=1
until [ $contador -gt 5 ]; do
echo "Comptador: $contador"
contador=$((contador + 1))
done
- 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."
fiExercici 2: Bucles
Escriu un script que mostri els números del 1 al 10 utilitzant un bucle for.
Solució:
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."
;;
esacConclusió
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
- Què és Linux?
- Història de Linux
- Distribucions de Linux
- Instal·lant Linux
- Estructura del Sistema de Fitxers de Linux
Mòdul 2: Comandes Bàsiques de Linux
- Introducció a la Línia de Comandes
- Navegant pel Sistema de Fitxers
- Operacions amb Fitxers i Directoris
- Visualització i Edició de Fitxers
- Permisos i Propietat dels Fitxers
Mòdul 3: Habilitats Avançades de la Línia de Comandes
- Ús de Comodins i Expressions Regulars
- Piping i Redirecció
- Gestió de Processos
- Programació de Tasques amb Cron
- Comandes de Xarxa
Mòdul 4: Scripting de Shell
- Introducció al Scripting de Shell
- Variables i Tipus de Dades
- Estructures de Control
- Funcions i Biblioteques
- Depuració i Gestió d'Errors
Mòdul 5: Administració del Sistema
- Gestió d'Usuaris i Grups
- Gestió de Discs
- Gestió de Paquets
- Monitorització del Sistema i Optimització del Rendiment
- Còpia de Seguretat i Restauració
Mòdul 6: Xarxes i Seguretat
- Configuració de Xarxa
- Tallafocs i Seguretat
- SSH i Accés Remot
- Sistemes de Detecció d'Intrusions
- Assegurant Sistemes Linux
Mòdul 7: Temes Avançats
- Virtualització amb Linux
- Contenidors de Linux i Docker
- Automatització amb Ansible
- Optimització del Nucli de Linux
- Alta Disponibilitat i Balanceig de Càrrega
