Last active 1734009608

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