base_template.bash
· 2.1 KiB · Bash
Raw
#!/usr/bin/bash
# sécurisation de l'éxécution
set -e # plante le batch sur une erreur lors de l'éxécution (pas besoin de traiter le return code pour ça)
set -u # plante le batch si on utilise une variable non défini
set -o pipefail # plante le batch si une commande dans un pipe plante
##
## Bloc des fonctions
##
function utilisation
{
echo "Aide du programme"
echo "mon_prog [OPTION] ..."
echo " -a, --append, append... [obligatoire]"
echo " -e, --exec, execute..."
echo ""
}
function controle_parm
{
if [[ -z "$a" ]] then
echo "append non défini"
utilisation
return 1
fi
}
##
## Chargement des valeurs par défaut
##
config_fic=~/mon_scriptrc.cfg
tmp_cfg=/tmp/mon_scriptrc.cfg.tmp
b="blabla"
c="machine"
##
## gestion d'un fichier de configuration
##
# si le fichier de config existe
if [[ -f $config_fic ]] then
# suppression des lignes commençant par un #
grep "^#" $config_fic > $tmp_cfg
# traitement du fichier
while read ligne
do
parm=$(echo $ligne | awk -F "=" '{print $1;}')
val=$(echo $ligne | awk -F "=" '{print $2;}')
# ici, on va placer les valeurs attendu du fichier de configuration
# Le fichier de conf étant de la forme parm=val
# parm)
# parm=$val;
case $parm in
append)
a=$val;
;;
*)
echo "parametre $parm inconnue..."
exit 1
;;
esac
done < $tmp_cfg
# suppression du fichier temporaire
rm $tmp_cfg
fi
##
## gestion de paramètre en entrée saisie par l'opérateur
##
while [[ $# -gt 0 ]]
do
case $1 in
-a|--append)
shift;
a=$1;
shift;
;;
-e|--exec)
exec ;
shift;
;;
*)
echo "parametre $1 inconnue";
shift;
;;
esac
done
##
## contrôle des paramètres obligatoires
##
controle_parm
if [[ $? -eq 1 ]] then
exit 1
fi
##
## début du script
##
##
## fin du script
##
return $RC; # pensez au return code !!!
| 1 | #!/usr/bin/bash |
| 2 | |
| 3 | # sécurisation de l'éxécution |
| 4 | set -e # plante le batch sur une erreur lors de l'éxécution (pas besoin de traiter le return code pour ça) |
| 5 | set -u # plante le batch si on utilise une variable non défini |
| 6 | set -o pipefail # plante le batch si une commande dans un pipe plante |
| 7 | |
| 8 | ## |
| 9 | ## Bloc des fonctions |
| 10 | ## |
| 11 | |
| 12 | function utilisation |
| 13 | { |
| 14 | echo "Aide du programme" |
| 15 | echo "mon_prog [OPTION] ..." |
| 16 | echo " -a, --append, append... [obligatoire]" |
| 17 | echo " -e, --exec, execute..." |
| 18 | echo "" |
| 19 | } |
| 20 | |
| 21 | function controle_parm |
| 22 | { |
| 23 | if [[ -z "$a" ]] then |
| 24 | echo "append non défini" |
| 25 | utilisation |
| 26 | return 1 |
| 27 | fi |
| 28 | } |
| 29 | |
| 30 | ## |
| 31 | ## Chargement des valeurs par défaut |
| 32 | ## |
| 33 | |
| 34 | config_fic=~/mon_scriptrc.cfg |
| 35 | tmp_cfg=/tmp/mon_scriptrc.cfg.tmp |
| 36 | b="blabla" |
| 37 | c="machine" |
| 38 | |
| 39 | ## |
| 40 | ## gestion d'un fichier de configuration |
| 41 | ## |
| 42 | |
| 43 | # si le fichier de config existe |
| 44 | if [[ -f $config_fic ]] then |
| 45 | # suppression des lignes commençant par un # |
| 46 | grep "^#" $config_fic > $tmp_cfg |
| 47 | # traitement du fichier |
| 48 | while read ligne |
| 49 | do |
| 50 | parm=$(echo $ligne | awk -F "=" '{print $1;}') |
| 51 | val=$(echo $ligne | awk -F "=" '{print $2;}') |
| 52 | # ici, on va placer les valeurs attendu du fichier de configuration |
| 53 | # Le fichier de conf étant de la forme parm=val |
| 54 | # parm) |
| 55 | # parm=$val; |
| 56 | |
| 57 | case $parm in |
| 58 | append) |
| 59 | a=$val; |
| 60 | ;; |
| 61 | |
| 62 | *) |
| 63 | echo "parametre $parm inconnue..." |
| 64 | exit 1 |
| 65 | ;; |
| 66 | esac |
| 67 | done < $tmp_cfg |
| 68 | # suppression du fichier temporaire |
| 69 | rm $tmp_cfg |
| 70 | fi |
| 71 | |
| 72 | ## |
| 73 | ## gestion de paramètre en entrée saisie par l'opérateur |
| 74 | ## |
| 75 | |
| 76 | while [[ $# -gt 0 ]] |
| 77 | do |
| 78 | case $1 in |
| 79 | -a|--append) |
| 80 | shift; |
| 81 | a=$1; |
| 82 | shift; |
| 83 | ;; |
| 84 | |
| 85 | -e|--exec) |
| 86 | exec ; |
| 87 | shift; |
| 88 | ;; |
| 89 | |
| 90 | *) |
| 91 | echo "parametre $1 inconnue"; |
| 92 | shift; |
| 93 | ;; |
| 94 | esac |
| 95 | done |
| 96 | |
| 97 | ## |
| 98 | ## contrôle des paramètres obligatoires |
| 99 | ## |
| 100 | |
| 101 | controle_parm |
| 102 | if [[ $? -eq 1 ]] then |
| 103 | exit 1 |
| 104 | fi |
| 105 | |
| 106 | ## |
| 107 | ## début du script |
| 108 | ## |
| 109 | |
| 110 | ## |
| 111 | ## fin du script |
| 112 | ## |
| 113 | |
| 114 | return $RC; # pensez au return code !!! |
| 115 |