Bonjour à tous, nous allons voir dans ce petit article comment centraliser des fonctions dans un fichier .cfg, afin d’avoir un code propre et concis, dans notre script bash. Et ce n’est pas si implicite que ça en a l’air…

Pour cela, nous allons prendre l’exemple de deux scripts bash. L’un qui représentera notre script principal main.sh , et l’autre functions.sh qui stockera nos fonctions.

En effet, nous ne pouvons pas stocker nos fonctions dans un script bash classique avec la commande source function.sh car lors de l’exécution de main.sh, le fichier est directement exécuté, alors que nous ne le souhaitons pas.

Afin de démontrer mes dires, voici le code de mes deux fichiers à titre d’exemple.

Contenu du fichier main.sh

#!/bin/bash
source /home/kali/functions.cfg
helloWorld $1

Contenu du fichier functions.cfg

helloWorld() {
 echo "the parameters of  the helloworld function is $1"
}

Exécution de main.sh

J’ai trouvé cette solution dans le « Bash Cookbook » (Albing, Vossen, & Newham) … chaque « scriptologue » devrait avoir une copie de ce livre à portée de main !

++

Brlndtech


Geoffrey Sauvageot-Berland

Ingénieur diplômé par l’état en Informatique et Cybersécurité. Généraliste, à l'origine administrateur systèmes et réseaux, j’occupe actuellement un poste d’auditeur en sécurité offensive. J’apprécie également la programmation/automatisation. Fondateur du blog : "Le Guide du SecOps", anciennement "Le Guide du SysOps"