Commit 558c779f43b293b8fb7d64b0cc13cefc22b803ed

Authored by root
1 parent e9886ceaa9
Exists in master

5b691acc-a7ee-4355-8979-7c363be72c93

Showing 3 changed files with 441 additions and 19 deletions

... ... @@ -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-----