informatique:linux:programmation_shell
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
informatique:linux:programmation_shell [2020/01/14 14:58] – [Tableau associatif] pteu | informatique:linux:programmation_shell [2021/01/05 08:54] – [Chaînes de caractères] =~ pteu | ||
---|---|---|---|
Line 26: | Line 26: | ||
</ | </ | ||
On peut les manipuler sans les déclarer proprement au préalable ; mais on peut être clean et les définir ('' | On peut les manipuler sans les déclarer proprement au préalable ; mais on peut être clean et les définir ('' | ||
+ | |||
+ | Pour déclarer une variable non modifiable = en readonly (une constante) : | ||
+ | <code bash> | ||
+ | readonly CONST=" | ||
+ | # ou | ||
+ | declare -r CONST=" | ||
+ | </ | ||
Par défaut une variable est globale et est vue dans le script (y compris ses fonctions) ; dans une fonction on peut déclarer des variables locales afin d' | Par défaut une variable est globale et est vue dans le script (y compris ses fonctions) ; dans une fonction on peut déclarer des variables locales afin d' | ||
Line 31: | Line 38: | ||
local VAR=" | local VAR=" | ||
</ | </ | ||
+ | |||
+ | Pour déclarer une constante locale à une fonction : | ||
+ | <code bash> | ||
+ | local -r CONST=" | ||
+ | |||
+ | # ou en 2 lignes | ||
+ | local CONST=" | ||
+ | readonly CONST | ||
+ | |||
+ | # marche aussi, puisque lorsque declare est invoqué dans une fonction, | ||
+ | # la variable qui suit est déclarée localement | ||
+ | function test() { | ||
+ | declare -r CONST=" | ||
+ | } | ||
+ | </ | ||
+ | C'est assez touffu je suis d' | ||
+ | |||
+ | |||
+ | |||
+ | |||
===== Tests de définition===== | ===== Tests de définition===== | ||
Line 127: | Line 154: | ||
* '' | * '' | ||
* '' | * '' | ||
+ | * '' | ||
* '' | * '' | ||
Line 432: | Line 460: | ||
Pour incrémenter une variable : plusieurs possibilités : | Pour incrémenter une variable : plusieurs possibilités : | ||
- | * '' | + | * '' |
- | * ''< | + | * ''< |
- | * ''< | + | |
* ''< | * ''< | ||
Line 517: | Line 544: | ||
* ''" | * ''" | ||
* ''" | * ''" | ||
- | * ''" | + | * ''" |
+ | <code bash> | ||
+ | [[ "la réponse est 42" =~ ^.*([0-9]{2}).*$ ]] && echo " | ||
+ | 42 est la réponse | ||
+ | </ | ||
* '' | * '' | ||
* '' | * '' | ||
Line 529: | Line 560: | ||
* '' | * '' | ||
+ | Comme il n'y a pas de typage en bash, pour tester si la valeur d'une variable est un nombre (entier) il faut réaliser le tester : | ||
+ | <code bash> | ||
+ | # Solution à base de REGEX | ||
+ | [[ $VAR =~ ^[0-9]+$ ]] || echo "VAR n'est pas un entier" | ||
+ | # NB : l' | ||
+ | # ou doit être enregistrée dans une variable sinon ça ne matche pas | ||
+ | |||
+ | # " | ||
+ | [ $VAR -eq $VAR ] 2>/ | ||
+ | </ | ||
==== Opérateurs ==== | ==== Opérateurs ==== | ||
* '' | * '' | ||
Line 828: | Line 869: | ||
</ | </ | ||
- | ====== | + | ====== |
* http:// | * http:// | ||
* http:// | * http:// | ||
* [[http:// | * [[http:// | ||
+ | * https:// |
informatique/linux/programmation_shell.txt · Last modified: 2023/10/02 13:35 by pteu