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 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
- 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)) done
2.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." fi
Exercici 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." ;; 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
- 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