En aquest tema, aprendrem a crear i utilitzar funcions en scripts de shell, així com a organitzar el nostre codi en biblioteques reutilitzables. Les funcions ens permeten estructurar el codi de manera més clara i modular, mentre que les biblioteques ens ajuden a reutilitzar codi en diferents scripts.

  1. Introducció a les Funcions

Què és una Funció?

Una funció és un bloc de codi amb un nom específic que es pot cridar des de qualsevol part del programa. Les funcions ens permeten evitar la duplicació de codi i millorar la llegibilitat i mantenibilitat dels nostres scripts.

Definició d'una Funció

Per definir una funció en un script de shell, utilitzem la següent sintaxi:

nom_de_la_funcio() {
    # Codi de la funció
}

Exemple Bàsic

#!/bin/bash

# Definició de la funció
saludar() {
    echo "Hola, $1!"
}

# Crida a la funció
saludar "Món"

En aquest exemple, la funció saludar pren un argument i imprimeix un missatge de salutació.

  1. Arguments de les Funcions

Les funcions poden acceptar arguments, que es passen quan es crida la funció. Els arguments es poden accedir dins de la funció utilitzant $1, $2, etc.

Exemple amb Arguments

#!/bin/bash

# Definició de la funció
sumar() {
    resultat=$(($1 + $2))
    echo "La suma de $1 i $2 és: $resultat"
}

# Crida a la funció amb arguments
sumar 3 5

En aquest exemple, la funció sumar pren dos arguments i imprimeix la seva suma.

  1. Retorn de Valors

Les funcions poden retornar valors utilitzant la comanda return o simplement imprimint el valor i capturant-lo amb una substitució de comandes.

Exemple de Retorn de Valors

#!/bin/bash

# Definició de la funció
multiplicar() {
    echo $(($1 * $2))
}

# Captura del valor retornat
resultat=$(multiplicar 4 6)
echo "El resultat de la multiplicació és: $resultat"

En aquest exemple, la funció multiplicar retorna el producte dels dos arguments, i el valor es captura en la variable resultat.

  1. Biblioteques de Funcions

Què és una Biblioteca?

Una biblioteca és un fitxer que conté funcions que es poden reutilitzar en diferents scripts. Això ens permet organitzar el nostre codi de manera més eficient i mantenir-lo modular.

Creació d'una Biblioteca

Per crear una biblioteca, simplement definim funcions en un fitxer separat. Per exemple, creem un fitxer anomenat biblioteca.sh:

# biblioteca.sh

saludar() {
    echo "Hola, $1!"
}

sumar() {
    echo $(($1 + $2))
}

Ús d'una Biblioteca

Per utilitzar una biblioteca en un script, utilitzem la comanda source o . per incloure el fitxer de la biblioteca:

#!/bin/bash

# Incloure la biblioteca
source biblioteca.sh

# Crida a les funcions de la biblioteca
saludar "Món"
resultat=$(sumar 3 5)
echo "La suma és: $resultat"

  1. Exercicis Pràctics

Exercici 1: Funció de Factorial

Crea una funció que calculi el factorial d'un nombre donat.

#!/bin/bash

factorial() {
    if [ $1 -le 1 ]; then
        echo 1
    else
        echo $(($1 * $(factorial $(($1 - 1)))))
    fi
}

# Prova la funció
resultat=$(factorial 5)
echo "El factorial de 5 és: $resultat"

Exercici 2: Biblioteca de Funcions Matemàtiques

Crea una biblioteca amb funcions per sumar, restar, multiplicar i dividir. Utilitza aquesta biblioteca en un script per realitzar operacions matemàtiques.

Biblioteca (matematica.sh)

# matematica.sh

sumar() {
    echo $(($1 + $2))
}

restar() {
    echo $(($1 - $2))
}

multiplicar() {
    echo $(($1 * $2))
}

dividir() {
    if [ $2 -ne 0 ]; then
        echo $(($1 / $2))
    else
        echo "Error: Divisió per zero"
    fi
}

Script Principal

#!/bin/bash

# Incloure la biblioteca
source matematica.sh

# Prova les funcions de la biblioteca
echo "Sumar 10 i 5: $(sumar 10 5)"
echo "Restar 10 i 5: $(restar 10 5)"
echo "Multiplicar 10 i 5: $(multiplicar 10 5)"
echo "Dividir 10 per 5: $(dividir 10 5)"

Conclusió

En aquesta secció, hem après a crear i utilitzar funcions en scripts de shell, així com a organitzar el nostre codi en biblioteques reutilitzables. Les funcions ens permeten estructurar el codi de manera més clara i modular, mentre que les biblioteques ens ajuden a reutilitzar codi en diferents scripts. Amb aquestes habilitats, podem escriure scripts més eficients i mantenibles.

Domini de Linux: De Principiant a Avançat

Mòdul 1: Introducció a Linux

Mòdul 2: Comandes Bàsiques de Linux

Mòdul 3: Habilitats Avançades de la Línia de Comandes

Mòdul 4: Scripting de Shell

Mòdul 5: Administració del Sistema

Mòdul 6: Xarxes i Seguretat

Mòdul 7: Temes Avançats

Mòdul 8: Projectes Pràctics

© Copyright 2024. Tots els drets reservats