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:

if [ condició ]; then
    # Bloc de codi a executar si la condició és certa
fi

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.

© Copyright 2024. Tots els drets reservats