Les sentències condicionals són una part fonamental de qualsevol llenguatge de programació, incloent Bash. Ens permeten prendre decisions basades en condicions específiques. En aquest tema, aprendrem com utilitzar les sentències condicionals en Bash per controlar el flux del nostre script.
Continguts
Introducció a les Sentències Condicionals
Les sentències condicionals permeten que el nostre script executi diferents blocs de codi basats en el resultat d'una condició. En Bash, les sentències condicionals més comunes són if
, else
i elif
.
L'Operador if
L'operador if
s'utilitza per executar un bloc de codi si una condició és certa. La sintaxi bàsica és la següent:
Exemple
#!/bin/bash # Exemple d'ús de l'operador if num=10 if [ $num -gt 5 ]; then echo "El número és més gran que 5" fi
En aquest exemple, el codi dins del bloc if
s'executarà perquè la condició $num -gt 5
(10 és més gran que 5) és certa.
L'Operador else
L'operador else
s'utilitza per executar un bloc de codi si la condició de l'if
és falsa. La sintaxi és la següent:
if [ condició ]; then # Bloc de codi a executar si la condició és certa else # Bloc de codi a executar si la condició és falsa fi
Exemple
#!/bin/bash # Exemple d'ús de l'operador else num=3 if [ $num -gt 5 ]; then echo "El número és més gran que 5" else echo "El número no és més gran que 5" fi
En aquest exemple, el codi dins del bloc else
s'executarà perquè la condició $num -gt 5
(3 no és més gran que 5) és falsa.
L'Operador elif
L'operador elif
(abreviatura de "else if") s'utilitza per afegir condicions addicionals després d'un if
. La sintaxi és la següent:
if [ condició1 ]; then # Bloc de codi a executar si la condició1 és certa elif [ condició2 ]; then # Bloc de codi a executar si la condició2 és certa else # Bloc de codi a executar si cap de les condicions anteriors és certa fi
Exemple
#!/bin/bash # Exemple d'ús de l'operador elif num=7 if [ $num -gt 10 ]; then echo "El número és més gran que 10" elif [ $num -gt 5 ]; then echo "El número és més gran que 5 però no més gran que 10" else echo "El número no és més gran que 5" fi
En aquest exemple, el codi dins del bloc elif
s'executarà perquè la condició $num -gt 5
(7 és més gran que 5) és certa.
Condicions Comunes
A continuació es mostren algunes condicions comunes que es poden utilitzar dins de les sentències condicionals en Bash:
Condició | Descripció |
---|---|
[ $a -eq $b ] |
Cert si $a és igual a $b |
[ $a -ne $b ] |
Cert si $a no és igual a $b |
[ $a -gt $b ] |
Cert si $a és més gran que $b |
[ $a -lt $b ] |
Cert si $a és més petit que $b |
[ $a -ge $b ] |
Cert si $a és més gran o igual a $b |
[ $a -le $b ] |
Cert si $a és més petit o igual a $b |
[ -z $str ] |
Cert si la cadena $str és buida |
[ -n $str ] |
Cert si la cadena $str no és buida |
[ -e $file ] |
Cert si el fitxer $file existeix |
[ -d $dir ] |
Cert si el directori $dir existeix |
Exemples Pràctics
Exemple 1: Verificar si un fitxer existeix
#!/bin/bash # Verificar si un fitxer existeix file="example.txt" if [ -e $file ]; then echo "El fitxer $file existeix" else echo "El fitxer $file no existeix" fi
Exemple 2: Verificar si una cadena és buida
#!/bin/bash # Verificar si una cadena és buida str="" if [ -z $str ]; then echo "La cadena és buida" else echo "La cadena no és buida" fi
Exercicis Pràctics
Exercici 1: Verificar si un número és positiu, negatiu o zero
Escriu un script que demani a l'usuari que introdueixi un número i després verifiqui si el número és positiu, negatiu o zero.
Solució
#!/bin/bash # Demanar a l'usuari que introdueixi un número read -p "Introdueix un número: " num if [ $num -gt 0 ]; then echo "El número és positiu" elif [ $num -lt 0 ]; then echo "El número és negatiu" else echo "El número és zero" fi
Exercici 2: Verificar si un usuari existeix al sistema
Escriu un script que demani a l'usuari que introdueixi un nom d'usuari i després verifiqui si l'usuari existeix al sistema.
Solució
#!/bin/bash # Demanar a l'usuari que introdueixi un nom d'usuari read -p "Introdueix un nom d'usuari: " username if id "$username" &>/dev/null; then echo "L'usuari $username existeix al sistema" else echo "L'usuari $username no existeix al sistema" fi
Conclusió
Les sentències condicionals són una eina poderosa per controlar el flux dels nostres scripts en Bash. Hem après a utilitzar les sentències if
, else
i elif
per prendre decisions basades en condicions específiques. També hem vist alguns exemples pràctics i hem practicat amb exercicis per reforçar els conceptes apresos. En el proper mòdul, explorarem els bucles en Bash, que ens permetran repetir blocs de codi de manera 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