Last active 1734009608

nithir's Avatar nithir revised this gist 1734009607. Go to revision

1 file changed, 1 insertion, 1 deletion

base_template.bash

@@ -1,4 +1,4 @@
1 - #!/usr/bin/bash
1 + #!/usr/bin/env bash
2 2
3 3 # sécurisation de l'éxécution (mode strict)
4 4 set -e # plante le batch sur une erreur lors de l'éxécution (pas besoin de traiter le return code pour ça)

nithir's Avatar nithir revised this gist 1728568563. Go to revision

1 file changed, 1 insertion, 1 deletion

base_template.bash

@@ -39,7 +39,7 @@ b="blabla"
39 39 c="machine"
40 40
41 41 ##
42 - ## gestion d'un fichier de configuration
42 + ## gestion d'un fichier de configuration de type "clef=valeur"
43 43 ##
44 44
45 45 # si le fichier de config existe

nithir's Avatar nithir revised this gist 1728568518. Go to revision

1 file changed, 1 insertion, 1 deletion

base_template.bash

@@ -5,7 +5,7 @@ set -e # plante le batch sur une erreur lors de l'éxécution (pas besoin de tra
5 5 set -u # plante le batch si on utilise une variable non défini
6 6 set -o pipefail # plante le batch si une commande dans un pipe plante
7 7
8 - IFS=$'\n\t' # gestion des espaces dans les lignes
8 + #IFS=$'\n\t' # gestion des espaces dans les lignes si besoin
9 9
10 10 ##
11 11 ## Bloc des fonctions

nithir's Avatar nithir revised this gist 1728568440. Go to revision

1 file changed, 3 insertions, 1 deletion

base_template.bash

@@ -1,10 +1,12 @@
1 1 #!/usr/bin/bash
2 2
3 - # sécurisation de l'éxécution
3 + # sécurisation de l'éxécution (mode strict)
4 4 set -e # plante le batch sur une erreur lors de l'éxécution (pas besoin de traiter le return code pour ça)
5 5 set -u # plante le batch si on utilise une variable non défini
6 6 set -o pipefail # plante le batch si une commande dans un pipe plante
7 7
8 + IFS=$'\n\t' # gestion des espaces dans les lignes
9 +
8 10 ##
9 11 ## Bloc des fonctions
10 12 ##

nithir's Avatar nithir revised this gist 1728398426. Go to revision

1 file changed, 104 insertions, 16 deletions

base_template.bash

@@ -1,26 +1,114 @@
1 - #!/usr/bin/env bash
1 + #!/usr/bin/bash
2 2
3 - set -o errexit
4 - set -o nounset
5 - set -o pipefail
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
6 7
7 - if [[ "${TRACE-0}" == "1" ]]; then
8 - set -o xtrace
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
9 70 fi
10 71
11 - if [[ "${1-}" =~ ^-*h(elp)?$ ]]; then
12 - echo 'Usage: ./script.sh arg-one arg-two
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 + ;;
13 84
14 - This is an awesome bash script to make your life better.
85 + -e|--exec)
86 + exec ;
87 + shift;
88 + ;;
15 89
16 - '
17 - exit
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
18 104 fi
19 105
20 - cd "$(dirname "$0")"
106 + ##
107 + ## début du script
108 + ##
21 109
22 - main() {
23 - echo do awesome stuff
24 - }
110 + ##
111 + ## fin du script
112 + ##
25 113
26 - main "$@"
114 + return $RC; # pensez au return code !!!

nithir's Avatar nithir revised this gist 1728398293. Go to revision

1 file changed, 1 insertion

base_template.bash

@@ -3,6 +3,7 @@
3 3 set -o errexit
4 4 set -o nounset
5 5 set -o pipefail
6 +
6 7 if [[ "${TRACE-0}" == "1" ]]; then
7 8 set -o xtrace
8 9 fi

nithir's Avatar nithir revised this gist 1728395428. Go to revision

1 file changed, 25 insertions

base_template.bash(file created)

@@ -0,0 +1,25 @@
1 + #!/usr/bin/env bash
2 +
3 + set -o errexit
4 + set -o nounset
5 + set -o pipefail
6 + if [[ "${TRACE-0}" == "1" ]]; then
7 + set -o xtrace
8 + fi
9 +
10 + if [[ "${1-}" =~ ^-*h(elp)?$ ]]; then
11 + echo 'Usage: ./script.sh arg-one arg-two
12 +
13 + This is an awesome bash script to make your life better.
14 +
15 + '
16 + exit
17 + fi
18 +
19 + cd "$(dirname "$0")"
20 +
21 + main() {
22 + echo do awesome stuff
23 + }
24 +
25 + main "$@"
Newer Older