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.
- 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:
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ó.
- 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.
- 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
.
- 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
:
Ú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"
- 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
- 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