
Pour mes besoins personnels, j'écris quelques petits scripts de temps à autres.
Pour essayer de gagner un peu de temps et éviter de réinventer la roue à chaque fois,
je tente d'adopter (pas simple) une approche modulaire :
Code : Tout sélectionner
/my-script/
/my-script/main.sh
/my-script/modules/
/my-script/modules/module-1.sh
/my-script/modules/module-2.sh
/my-script/modules/main.conf
/my-script/modules/start.msge
/my-script/modules/...
Donc le début de my-script.sh peut ressembler à :
Code : Tout sélectionner
#!/bin/bash
#
#### VARIABLES ####################
#
# SCRIPT_DIR = Chemin du répertoire contenant le script
export SCRIPT_DIR=$(dirname "$(realpath "$0")") ;
#
# MOD_DIR = Chemin du répertoire des modules
export MOD_DIR="${SCRIPT_DIR}"/modules ;
#
#
### Traitement du fichier main.conf ###
#
source "${MOD_DIR}"/main.conf ;
#
#
##### FONCTIONS ####################
#
#
#### MODULE-1
#
source "${MOD_DIR}"/module-1.sh ;
export -f MODULE-1 ;
#
...
#
##### SCRIPT #######################
#
#
# Message d'ouverture
cat "${MOD_DIR}"/start.msge ;
....
Voilà pour le décor.
Maintenant je voudrais ajouter un module : /my-script/modules/trace.sh
qui enverrait systématiquement :
- toutes les sorties d'erreurs
- de toutes les commandes exécutées par main.sh
Du coup, je pourrais avoir pour chaque exécution du script :
un séparateur horodaté suivi des éventuelles erreurs envoyées...
J'espère que ça amuse les balèzes en script,
mais je ne vois pas comment pourrait fonctionner ce module (si c'est possible).
Merci pour vos conseils.