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 09:01] – [Les tableaux] Exemple de découpage d'une chaîne dans un tableau pteu | informatique:linux:programmation_shell [2021/01/04 14:30] – [Les variables] constantes#2 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 192: | Line 220: | ||
</ | </ | ||
+ | ====Tableau associatif==== | ||
+ | Créer et utiliser un vrai tableau associatif : | ||
+ | <code bash> | ||
+ | declare -A TA=([cle1]=valeur1 ["cle 2" | ||
+ | echo " | ||
+ | # valeur1 | ||
+ | |||
+ | # Parcourir le tableau | ||
+ | for cle in " | ||
+ | echo " | ||
+ | done | ||
+ | #cle=cle 2 ; val=valeur 2 | ||
+ | #cle=cle3 ; val=valeur3 | ||
+ | #cle=cle1 ; val=valeur1 | ||
+ | </ | ||
+ | |||
+ | Pour connaitre la taille de ce tableau : '' | ||
=====getopts : analyse des arguments d'un script===== | =====getopts : analyse des arguments d'un script===== | ||
Line 415: | Line 460: | ||
Pour incrémenter une variable : plusieurs possibilités : | Pour incrémenter une variable : plusieurs possibilités : | ||
- | * '' | + | * '' |
- | * ''< | + | * ''< |
- | * ''< | + | |
* ''< | * ''< | ||
Line 512: | Line 556: | ||
* '' | * '' | ||
+ | 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 811: | Line 865: | ||
</ | </ | ||
- | ====== | + | ====== |
* http:// | * http:// | ||
* http:// | * http:// | ||
* [[http:// | * [[http:// | ||
+ | * https:// |
informatique/linux/programmation_shell.txt · Last modified: 2023/10/02 13:35 by pteu