Commit 558c779f43b293b8fb7d64b0cc13cefc22b803ed
1 parent
e9886ceaa9
Exists in
master
5b691acc-a7ee-4355-8979-7c363be72c93
Showing 3 changed files with 441 additions and 19 deletions
README.md
View file @
558c779
... | ... | @@ -5,25 +5,27 @@ |
5 | 5 | |
6 | 6 | SHA256SUM |
7 | 7 | --------- |
8 | -825e356515bba1e73438092fa3d6f8157c3d858a5061bcb1d6eeff4ec6beee63 ./anagramme.sh | |
9 | -3dd10d993f6a360b16f2d1f00e356e19a8fb05dcfeff20a7f00dfd16e55c58df ./anagramme.sh.asc | |
10 | -79860ca3dde5fefe6f949eb496f000a904c642e4d40be5f6a71a48f8c798a245 ./configure_bind9.sh | |
11 | -11f683f0a65dce09cfd5432e0debde8950f11d1baaaae2847d5ee26e12e166b4 ./configure_bind9.sh.asc | |
12 | -b3f941eb2e661fed193acf26481e3f4f661bb05043beae220c0362e9b44a9d7f ./curl.igalerie.php | |
13 | -364128d323768b28a39dac856ae4a88bdf583d7d00b46d95ccd7a3cf7194a1c6 ./curl.igalerie.php.asc | |
14 | -f4a779cfcaa0df84a47a3e74d76c8747998bc2adc2d215d5f466450a4092ee3c ./getInetAddr.sh | |
15 | -7ea71784d7f8df60e64e525df67812ee59883f29c335d26a1b2096193ac09f0e ./getInetAddr.sh.asc | |
16 | -cdab7e11b499cdae1305b081497b7561efbc31d35c5d69cb2d8acc6a3b35e44d ./liste.de.mots.francais.frgut.txt.iso-8859-1 | |
17 | -a3806b0da36a73bdad0307d603fd0aa38476dcc324fb4c10537c769174989295 ./liste.de.mots.francais.frgut.txt.iso-8859-1.asc | |
18 | -d014d66f757f7922125ed57688b0c118ec372b22c140dc2784a276cdc82e9da1 ./liste.de.mots.francais.frgut.txt.utf-8 | |
19 | -caa261fda25fa5548cae58a69dd83b88e9e509b1788ebe4d0848e87bd85ae577 ./liste.de.mots.francais.frgut.txt.utf-8.asc | |
20 | -2600bb3da6ca9d0098618631de344a657915cec298ab46efdf51555769c2d617 ./pgcd.sh | |
21 | -f347092852f62f2c48433436782262fe9f3e669cb502fdb20b5bdc24e8a568ae ./pgcd.sh.asc | |
22 | -ee41f2901353c16738932a090a82a2e8a631e3c6526ac6a0325ee29bb99eb2af ./rechercheDoublons.sh | |
23 | -00a200a373e8c72e289fed84ce716640b6a37d79c409dd470da69a1a45c0fcd7 ./rechercheDoublons.sh.asc | |
24 | -3bc9fd6d5d92c84c6b7672ee1db4e9f97c3bf34eb9176c6ca393a29e2bb9b311 ./ronan@quennec.fr.gpg | |
25 | -0694b4cff027ac727eaad1ce9cac481c10d542d3375f03a220bd7a0312d7800a ./syllabes.sh | |
26 | -df2dfd675abb0742ff838fe0467776f3c1d06c6829bfd905dbd663356640c18a ./syllabes.sh.asc | |
8 | +825e356515bba1e73438092fa3d6f8157c3d858a5061bcb1d6eeff4ec6beee63 anagramme.sh | |
9 | +3dd10d993f6a360b16f2d1f00e356e19a8fb05dcfeff20a7f00dfd16e55c58df anagramme.sh.asc | |
10 | +79860ca3dde5fefe6f949eb496f000a904c642e4d40be5f6a71a48f8c798a245 configure_bind9.sh | |
11 | +11f683f0a65dce09cfd5432e0debde8950f11d1baaaae2847d5ee26e12e166b4 configure_bind9.sh.asc | |
12 | +b3f941eb2e661fed193acf26481e3f4f661bb05043beae220c0362e9b44a9d7f curl.igalerie.php | |
13 | +364128d323768b28a39dac856ae4a88bdf583d7d00b46d95ccd7a3cf7194a1c6 curl.igalerie.php.asc | |
14 | +f4a779cfcaa0df84a47a3e74d76c8747998bc2adc2d215d5f466450a4092ee3c getInetAddr.sh | |
15 | +7ea71784d7f8df60e64e525df67812ee59883f29c335d26a1b2096193ac09f0e getInetAddr.sh.asc | |
16 | +cdab7e11b499cdae1305b081497b7561efbc31d35c5d69cb2d8acc6a3b35e44d liste.de.mots.francais.frgut.txt.iso-8859-1 | |
17 | +a3806b0da36a73bdad0307d603fd0aa38476dcc324fb4c10537c769174989295 liste.de.mots.francais.frgut.txt.iso-8859-1.asc | |
18 | +d014d66f757f7922125ed57688b0c118ec372b22c140dc2784a276cdc82e9da1 liste.de.mots.francais.frgut.txt.utf-8 | |
19 | +caa261fda25fa5548cae58a69dd83b88e9e509b1788ebe4d0848e87bd85ae577 liste.de.mots.francais.frgut.txt.utf-8.asc | |
20 | +2600bb3da6ca9d0098618631de344a657915cec298ab46efdf51555769c2d617 pgcd.sh | |
21 | +f347092852f62f2c48433436782262fe9f3e669cb502fdb20b5bdc24e8a568ae pgcd.sh.asc | |
22 | +ee41f2901353c16738932a090a82a2e8a631e3c6526ac6a0325ee29bb99eb2af rechercheDoublons.sh | |
23 | +00a200a373e8c72e289fed84ce716640b6a37d79c409dd470da69a1a45c0fcd7 rechercheDoublons.sh.asc | |
24 | +3bc9fd6d5d92c84c6b7672ee1db4e9f97c3bf34eb9176c6ca393a29e2bb9b311 ronan@quennec.fr.gpg | |
25 | +0694b4cff027ac727eaad1ce9cac481c10d542d3375f03a220bd7a0312d7800a syllabes.sh | |
26 | +df2dfd675abb0742ff838fe0467776f3c1d06c6829bfd905dbd663356640c18a syllabes.sh.asc | |
27 | +c30a4343a66aeef47c6bd6a9dfefa3e0d618e8c960a64878d643bdb3378eb936 functions.inc | |
28 | +afa9d91fac7b8317c47d18f054f512107cd5034de4c69b5672962e6b1d564103 functions.inc.asc | |
27 | 29 | |
28 | 30 | syllabes.sh |
29 | 31 | ============= |
... | ... | @@ -145,4 +147,9 @@ |
145 | 147 | ```sh |
146 | 148 | ./getInetAddr.sh |
147 | 149 | ``` |
150 | + | |
151 | +functions.inc | |
152 | +=== | |
153 | + | |
154 | +Ce script contient plusieurs fonctions qui permettent de manipuler les variables. |
functions.inc
View file @
558c779
1 | +doubleval(){ | |
2 | + # Alias de la fonction floatval | |
3 | + # | |
4 | + # EXECUTION | |
5 | + # ========= | |
6 | + # doubleval "$var" | |
7 | + # | |
8 | + # RETOUR | |
9 | + # ====== | |
10 | + # Retourne la valeur flottante de la variable donnée ou 0 en cas d'erreur | |
11 | + # | |
12 | + floatval "$1" | |
13 | +} | |
14 | + | |
15 | +empty(){ | |
16 | + # Détermine si une variable est vide | |
17 | + # | |
18 | + # EXECUTION | |
19 | + # ========= | |
20 | + # empty "$var" | |
21 | + # | |
22 | + # RETOUR | |
23 | + # ====== | |
24 | + # Code retour 0 en cas de succès et 1 en cas d'erreur. | |
25 | + # | |
26 | + typeset VAR=$(sed "s/ //g" <<< "$1") | |
27 | + ( [ -z "$VAR" ] || grep -E -q '^0*.?0+$' <<< "$VAR" ) && return 0 || return 1 | |
28 | +} | |
29 | + | |
30 | +floatval(){ | |
31 | + # Convertit une chaine en nombre à virgule flottante | |
32 | + # Une donnée numérique valide est un signe optionnel, suivi par un ou plusieurs | |
33 | + # chiffres, suivi par un point décimal optionnel, suivi par un ou plusieurs | |
34 | + # chiffres optionnels, suivi par un exposant optionnel. | |
35 | + # Un exposant est représenté par la lettre 'e' ou 'E', suivi d'un signe optionnel, | |
36 | + # suivi d'un ou plusieurs chiffres. | |
37 | + # 10 / 10.5 / -5.7 / 10. / 4e5 / 5.6E7 | |
38 | + # | |
39 | + # EXECUTION | |
40 | + # ========= | |
41 | + # floatval "$var" | |
42 | + # | |
43 | + # RETOUR | |
44 | + # ====== | |
45 | + # Retourne la valeur flottante de la variable donnée ou 0 en cas d'erreur | |
46 | + # | |
47 | + typeset VAR=$(grep -E -o '^-?[0-9]*\.?[0-9]+((e|E)-?[0-9]+)?' <<< "$1") | |
48 | + if [ -n "$VAR" ]; then | |
49 | + VAR=$(sed -r 's/(e|E)/\*10\^/g' <<< "$VAR") | |
50 | + calcul "1*$VAR" | |
51 | + return 0 | |
52 | + fi | |
53 | + echo 0 && return 1 | |
54 | +} | |
55 | + | |
56 | +intval(){ | |
57 | + # Retourne la valeur numérique entière équivalente d'une variable | |
58 | + # | |
59 | + # EXECUTION | |
60 | + # ========= | |
61 | + # intval "$var" | |
62 | + # | |
63 | + # RETOUR | |
64 | + # ====== | |
65 | + # Retourne une valeur de type entier en cas de succès ou 0 en cas d'erreur. | |
66 | + # | |
67 | + typeset VAR=$(grep -E -o '^-?[0-9]+' <<< "$1") | |
68 | + if [ -n "$VAR" ]; then | |
69 | + calcul "1*$VAR" | |
70 | + return 0 | |
71 | + fi | |
72 | + echo 0 && return 1 | |
73 | +} | |
74 | + | |
75 | +is_array(){ | |
76 | + # Détermine si la variable donnée est un tableau. | |
77 | + # | |
78 | + # EXECUTION | |
79 | + # ========= | |
80 | + # array=(a b c d e f) | |
81 | + # is_array "${array[@]}" | |
82 | + # | |
83 | + # RETOUR | |
84 | + # ====== | |
85 | + # Code retour 0 en cas de succès et 1 en cas d'erreur. | |
86 | + # | |
87 | + typeset VAR=("$@") | |
88 | + if empty ${VAR[*]}; then | |
89 | + return 1 | |
90 | + elif [ ${#VAR[*]} -ge 1 ]; then | |
91 | + return 0 | |
92 | + else | |
93 | + return 1 | |
94 | + fi | |
95 | +} | |
96 | + | |
97 | +is_bool(){ | |
98 | + # Détermine si la variable est un booléen | |
99 | + # | |
100 | + # EXECUTION | |
101 | + # ========= | |
102 | + # is_bool "$var" | |
103 | + # | |
104 | + # RETOUR | |
105 | + # ====== | |
106 | + # Code retour 0 en cas de succès et 1 en cas d'erreur. | |
107 | + # | |
108 | + grep -E -q -i '^(true|false|1|0)$' <<< "$1" && return 0 || return 1 | |
109 | +} | |
110 | + | |
111 | +is_callable(){ | |
112 | + # Détermine si la variable est une commande | |
113 | + # | |
114 | + # EXECUTION | |
115 | + # ========= | |
116 | + # is_callable "$var" | |
117 | + # | |
118 | + # RETOUR | |
119 | + # ====== | |
120 | + # Code retour 0 en cas de succès et 1 en cas d'erreur. | |
121 | + # | |
122 | + type $1 >/dev/null 2>&1 && return 0 || return 1 | |
123 | +} | |
124 | + | |
125 | +is_double(){ | |
126 | + # Alias de la fonction is_float | |
127 | + # | |
128 | + # EXECUTION | |
129 | + # ========= | |
130 | + # is_double "$var" | |
131 | + # | |
132 | + # RETOUR | |
133 | + # ====== | |
134 | + # Code retour 0 en cas de succès et 1 en cas d'erreur. | |
135 | + # | |
136 | + is_float "$1" | |
137 | +} | |
138 | + | |
139 | +is_float(){ | |
140 | + # Détermine si une variable est de type nombre décimal | |
141 | + # | |
142 | + # EXECUTION | |
143 | + # ========= | |
144 | + # is_float "$var" | |
145 | + # | |
146 | + # RETOUR | |
147 | + # ====== | |
148 | + # Code retour 0 en cas de succès et 1 en cas d'erreur. | |
149 | + # | |
150 | + grep -E -q '^-?[0-9]*\.[0-9]+((e|E)-?[0-9]+)?$' <<< "$1" && return 0 || return 1 | |
151 | +} | |
152 | + | |
153 | +is_int(){ | |
154 | + # Détermine si une variable est de type nombre entier. | |
155 | + # | |
156 | + # EXECUTION | |
157 | + # ========= | |
158 | + # is_int "$var" | |
159 | + # | |
160 | + # RETOUR | |
161 | + # ====== | |
162 | + # Code retour 0 en cas de succès et 1 en cas d'erreur. | |
163 | + # | |
164 | + grep -E -q '^-?[0-9]+$' <<< "$1" && return 0 || return 1 | |
165 | +} | |
166 | + | |
167 | +is_integer(){ | |
168 | + # Alias de la fonction is_int | |
169 | + # | |
170 | + # EXECUTION | |
171 | + # ========= | |
172 | + # is_integer "$var" | |
173 | + # | |
174 | + # RETOUR | |
175 | + # ====== | |
176 | + # Code retour 0 en cas de succès et 1 en cas d'erreur. | |
177 | + # | |
178 | + is_int "$1" | |
179 | +} | |
180 | + | |
181 | +is_long(){ | |
182 | + # Alias de la fonction is_int | |
183 | + # | |
184 | + # EXECUTION | |
185 | + # ========= | |
186 | + # is_long "$var" | |
187 | + # | |
188 | + # RETOUR | |
189 | + # ====== | |
190 | + # Code retour 0 en cas de succès et 1 en cas d'erreur. | |
191 | + # | |
192 | + is_int "$1" | |
193 | +} | |
194 | + | |
195 | +is_numeric(){ | |
196 | + # Détermine si une variable est un type numérique | |
197 | + # | |
198 | + # EXECUTION | |
199 | + # ========= | |
200 | + # is_numeric "$var" | |
201 | + # | |
202 | + # RETOUR | |
203 | + # ====== | |
204 | + # Code retour 0 en cas de succès et 1 en cas d'erreur. | |
205 | + # | |
206 | + grep -E -q '^(\+|-)?[0-9]*\.?[0-9]+((e|E)-?[0-9]+)?$' <<< "$1" && return 0 || return 1 | |
207 | +} | |
208 | + | |
209 | +is_real(){ | |
210 | + # Alias de la fonction is_float | |
211 | + # | |
212 | + # EXECUTION | |
213 | + # ========= | |
214 | + # is_real "$var" | |
215 | + # | |
216 | + # RETOUR | |
217 | + # ====== | |
218 | + # Code retour 0 en cas de succès et 1 en cas d'erreur. | |
219 | + # | |
220 | + is_float "$1" | |
221 | +} | |
222 | + | |
223 | +calcul(){ | |
224 | + # Calcul le résultat de l'opération passée en paramètre | |
225 | + # à l'aide de la commande bc | |
226 | + # Pour installer la commande bc : sudo apt-get install bc | |
227 | + # | |
228 | + # EXECUTION | |
229 | + # ========= | |
230 | + # calcul "5*4" | |
231 | + # calcul "(5*4/20)*2" | |
232 | + # var=$(calcul "5*4") | |
233 | + # | |
234 | + # RETOUR | |
235 | + # ====== | |
236 | + # Retourne le résultat de l'opération ou le code retour 1 en cas d'échec | |
237 | + # | |
238 | + ( echo "$1" | bc -l ) && return 0 || return 1 | |
239 | +} | |
240 | + | |
241 | +getdecsep(){ | |
242 | + # Retourne le séparateur décimal paramétré sur le sytème | |
243 | + # en fonction de la variable locale installée et définie par défaut. | |
244 | + # | |
245 | + # EXECUTION | |
246 | + # ========= | |
247 | + # getdecsep | |
248 | + # var=$(getdecsep) | |
249 | + # | |
250 | + # RETOUR | |
251 | + # ====== | |
252 | + # Retourne un point '.' ou une virgule ',' | |
253 | + # | |
254 | + ( printf "%1.1f" 1 | sed "s/[0-9]//g" ) && return 0 || return 1 | |
255 | +} | |
256 | + | |
257 | +commatodot(){ | |
258 | + # Remplace la virgule ',' par le point '.' dans les | |
259 | + # variables représentant des valeurs décimales. | |
260 | + # 10,5 --> 10.5 | |
261 | + # | |
262 | + # EXECUTION | |
263 | + # ========= | |
264 | + # commatodot "$var" | |
265 | + # var=$(commatodot "$var") | |
266 | + # | |
267 | + # RETOUR | |
268 | + # ====== | |
269 | + # Retourne la valeur remplacée en cas de succès ou le code erreur 1 en cas d'échec. | |
270 | + # | |
271 | + typeset VAR=$(sed "s/,/\./" <<< "$1") | |
272 | + is_float "$VAR" && ( echo "$VAR" && return 0 ) || return 1 | |
273 | +} | |
274 | + | |
275 | +dottocomma(){ | |
276 | + # Remplace le point '.' par la virgule ',' dans les | |
277 | + # variables représentant des valeurs décimales. | |
278 | + # 10.5 --> 10,5 | |
279 | + # | |
280 | + # EXECUTION | |
281 | + # ========= | |
282 | + # dottocomma "$var" | |
283 | + # var=$(dottocomma "$var") | |
284 | + # | |
285 | + # RETOUR | |
286 | + # ====== | |
287 | + # Retourne la valeur remplacée en cas de succès ou le code erreur 1 en cas d'échec. | |
288 | + # | |
289 | + is_float "$(commatodot "$1")" && ( sed "s/\./,/" <<< "$1" && return 0 ) || return 1 | |
290 | +} | |
291 | + | |
292 | +tolocaldecsep(){ | |
293 | + # Remplace le point '.' par le séparateur décimal | |
294 | + # paramétré sur le système dans les variables | |
295 | + # représentant des valeurs décimales. | |
296 | + # | |
297 | + # EXECUTION | |
298 | + # ========= | |
299 | + # tolocaldecsep "$var" | |
300 | + # var=$(tolocaldecsep "$var") | |
301 | + # | |
302 | + # RETOUR | |
303 | + # ====== | |
304 | + # Retourne la valeur remplacée en cas de succès. | |
305 | + # La valeur 0 en cas d'erreur et le code retour 1. | |
306 | + # | |
307 | + if is_float "$(commatodot "$1")"; then | |
308 | + sed "s/\./$(getdecsep)/" <<< "$1" && return 0 | |
309 | + else | |
310 | + echo 0 && return 1 | |
311 | + fi | |
312 | +} | |
313 | + | |
314 | +prerequis(){ | |
315 | + # Test si la ou les commandes passées | |
316 | + # en paramètres sont bien installées | |
317 | + # sur le système. | |
318 | + # | |
319 | + # EXECUTION | |
320 | + # ========= | |
321 | + # prerequis vim grep ... | |
322 | + # if prerequis vim >/dev/null; then ...; fi | |
323 | + # prerequis vim >/dev/null && ... || ... | |
324 | + # | |
325 | + # RETOUR | |
326 | + # ====== | |
327 | + # Code retour 0 en cas de succès et 1 en cas d'erreur ainsi qu'un message explicatif. | |
328 | + # | |
329 | + typeset VAR | |
330 | + for VAR in "$@"; do | |
331 | + which "$VAR" >/dev/null || ( echo -e "Le programme '$VAR' n'est pas encore installé.\n\ | |
332 | +Vous pouvez l'installer en tapant : \n\ | |
333 | +sudo apt-get install $VAR" && return 1 ) | |
334 | + done | |
335 | +} | |
336 | + | |
337 | +getipv4(){ | |
338 | + # Extrait une ou plusieurs adresses IPV4 | |
339 | + # d'une chaine de caractères passée en paramètre. | |
340 | + # | |
341 | + # EXECUTION | |
342 | + # ========= | |
343 | + # RET=$(getipv4 "$VAR") | |
344 | + # | |
345 | + # RETOUR | |
346 | + # ====== | |
347 | + # Retourne une chaine contenant toutes | |
348 | + # les adresses IPV4 extraites de la chaine | |
349 | + # séparées par un espace. | |
350 | + # | |
351 | + typeset VAR=$(grep -E -o '([0-9]{1,3}\.){3}[0-9]{1,3}' <<< "$1") | |
352 | + typeset ADRIPV4="" | |
353 | + while read IPV4; do | |
354 | + ADRIPV4="$ADRIPV4 $IPV4" | |
355 | + done <<< "$VAR" | |
356 | + ADRIPV4=$(sed "s/^ //" <<< "$ADRIPV4") | |
357 | + echo "$ADRIPV4" && return 0 | |
358 | +} | |
359 | + | |
360 | +ltrim(){ | |
361 | + # Supprime tous les espaces à gauche | |
362 | + # | |
363 | + # EXECUTION | |
364 | + # ========= | |
365 | + # ltrim "$var" | |
366 | + # | |
367 | + # RETOUR | |
368 | + # ====== | |
369 | + # Retourne la valeur sans les espaces à gauche et le code retour 0. | |
370 | + # | |
371 | + typeset VAR=$(sed "s/^ *//g" <<< "$1") | |
372 | + echo "$VAR" && return 0 | |
373 | +} | |
374 | + | |
375 | +rtrim(){ | |
376 | + # Supprime tous les espaces à droite | |
377 | + # | |
378 | + # EXECUTION | |
379 | + # ========= | |
380 | + # rtrim "$var" | |
381 | + # | |
382 | + # RETOUR | |
383 | + # ====== | |
384 | + # Retourne la valeur sans les espaces à droite et le code retour 0. | |
385 | + # | |
386 | + typeset VAR=$(sed "s/ *$//g" <<< "$1") | |
387 | + echo "$VAR" && return 0 | |
388 | +} | |
389 | + | |
390 | +trim(){ | |
391 | + # Supprime tous les espaces à gauche et à droite | |
392 | + # | |
393 | + # EXECUTION | |
394 | + # ========= | |
395 | + # trim "$var" | |
396 | + # | |
397 | + # RETOUR | |
398 | + # ====== | |
399 | + # Retourne la valeur sans les espaces à gaucheet à droite et le code retour 0. | |
400 | + # | |
401 | + typeset VAR="$1" | |
402 | + VAR=$(ltrim "$VAR") | |
403 | + VAR=$(rtrim "$VAR") | |
404 | + echo "$VAR" && return 0 | |
405 | +} |
functions.inc.asc
View file @
558c779
1 | +-----BEGIN PGP SIGNATURE----- | |
2 | +Version: GnuPG v1 | |
3 | + | |
4 | +iQEcBAABAgAGBQJV7URzAAoJEIgCKezOqEu6wscH/iiyzfQif5MltRLWy0I9q9CZ | |
5 | +UIKk0v73Xhj7Xh5NRtJp7r9hgk1kSwVPAvBXTJJDLNhNQ8xN5WodMFGQn701SPk2 | |
6 | +wEGBMaimPu3KtczeW7zcsIZOc10YQ/k1J6Ovkj/aUlKDX8FzbTLfmJWF+hjI7OcW | |
7 | +cYHwjzIK5WvPjzzfA8EsHxrsEhLI0LmVaLzcnGWuRGLLaG1ImzzB0VGycf2PHlQL | |
8 | +eoSjx8G0p7LDevHLNlndBPlHlpiEFDFgHX6OFhj6tJjcjwpWxcbOxOqhGuxZw/Nu | |
9 | +RLuI2TBh3iBu1s8rZNrX5gfrWqzWYZrYw1P7vkZWupNEqI77RlE6DtpgXCGiLJg= | |
10 | +=IW1q | |
11 | +-----END PGP SIGNATURE----- |