Last active 1734009608

Revision 5c095c05fd06840db1856434f1121099f8ecfae4

base_template.bash Raw
1 #!/usr/bin/bash
2
3# sécurisation de l'éxécution
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##
9## Bloc des fonctions
10##
11
12function 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
21function 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
34config_fic=~/mon_scriptrc.cfg
35tmp_cfg=/tmp/mon_scriptrc.cfg.tmp
36b="blabla"
37c="machine"
38
39##
40## gestion d'un fichier de configuration
41##
42
43# si le fichier de config existe
44if [[ -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
70fi
71
72##
73## gestion de paramètre en entrée saisie par l'opérateur
74##
75
76while [[ $# -gt 0 ]]
77do
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
95done
96
97##
98## contrôle des paramètres obligatoires
99##
100
101controle_parm
102if [[ $? -eq 1 ]] then
103 exit 1
104fi
105
106##
107## début du script
108##
109
110##
111## fin du script
112##
113
114return $RC; # pensez au return code !!!
115