Trop bien, c'est exactement ce que je cherchais !!! Et dire que c'était aussi facile... Damned (O__O)
@Oros merci
@Oros j'ai souvent vu que la ligne set -euo pipefail
était recommandée en Bash et je voudrai te poser une question car je crois que le c'est le -e
ou le pipefail
qui ne marchent pas chez moi à cause de ma façon de coder en Bash.
En fait (et je sais que @Animal fait pareil) je créé des fichiers à sourcer et qui ne contiennent que des fonctions. Ces fichiers/bibliothèques peuvent aussi contenir des constantes via un export -r
et surtout, chaque fonction est testée unitairement avec bbtools ou shellunit.
Comme Bash ne permet que de retourner des "exit codes" depuis une fonction, le hack consiste à leur faire imprimer le résultat souhaité via un echo
unique et d'exécuter la fonction de la manière suivante pour récupérer la valeur de retour :
local resultat
resultat=$(ma_fonction "${param_eventuel}")
Donc mon script principale consiste à sourcer les libs dans le bon ordre puis à déclencher une fonction unique, en générale baptisée main()
qui contient la procédure à suivre. Évidemment, cette fonction main()
est purement déclarative et se limite à déléguer les traitements aux fonctions des API sourcées.
Est-ce que tu procèdes comme ça pour écrire un script où est-ce que tu écris les traitements en flat directement dedans ? (Je vais essayer de retrouver le cas ou le set -euo pipefail
plante avec des fonctions)