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"
fiEn 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
fiExemple
#!/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"
fiEn 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
fiExemple
#!/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"
fiEn 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"
fiExemple 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"
fiExercicis 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"
fiExercici 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"
fiConclusió
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
