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 [2019/04/24 09:36] – [Descripteurs de fichier] pteu | informatique:linux:programmation_shell [2020/10/20 09:43] – [Ressources] pteu | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Programmation Shell ======= | + | ======Programmation Shell======= |
- | Les différents shells peuvent avoir des fonctions sensiblement différentes voir incompatibles. Ce n'est pas le cas pour la majorité d' | + | {{ :informatique: |
+ | Les différents shells peuvent avoir des fonctions sensiblement différentes voir incompatibles. Ce n'est pas le cas pour la majorité d' | ||
+ | |||
+ | Pour afficher la liste des options de bash il faut saisir '' | ||
* '' | * '' | ||
- | * '' | + | * '' |
<code bash> | <code bash> | ||
$ touch toto | $ touch toto | ||
Line 59: | Line 62: | ||
echo ${VAR: | echo ${VAR: | ||
</ | </ | ||
+ | |||
+ | =====Typage===== | ||
+ | |||
+ | Il n'y a pas de typage strict en bash, toutes les variables sont considérées comme des chaînes de caractères, | ||
+ | |||
+ | Pour " | ||
+ | <code bash> | ||
+ | is_ready=true | ||
+ | if [ " | ||
+ | then echo " | ||
+ | else echo " | ||
+ | fi | ||
+ | </ | ||
+ | |||
+ | Pour plus de détails sur le pseudo-typage en bash, voir la fonction [[informatique: | ||
===== Manipulation des variables===== | ===== Manipulation des variables===== | ||
Line 109: | Line 127: | ||
* '' | * '' | ||
* '' | * '' | ||
+ | * '' | ||
* '' | * '' | ||
* '' | * '' | ||
- | |||
Line 137: | Line 155: | ||
trois | trois | ||
</ | </ | ||
+ | |||
+ | Exemple de découpage d'une chaîne dans un tableau, avec comme séparateur ";" | ||
+ | <code bash> | ||
+ | CHAINE=' | ||
+ | IFS=";" | ||
+ | read -a TAB <<<" | ||
+ | echo " | ||
+ | 3 | ||
+ | printf ' | ||
+ | 17 | ||
+ | 8 23 | ||
+ | 9 | ||
+ | </ | ||
+ | |||
====Tableau à 2 dimensions==== | ====Tableau à 2 dimensions==== | ||
- | Ça n'eût pas existé | + | Ça n'eût pas existé sous bash :). Mais on peut l' |
<code bash> | <code bash> | ||
# déclaration d'un tableau associatif T | # déclaration d'un tableau associatif T | ||
Line 161: | Line 193: | ||
</ | </ | ||
+ | ====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 481: | Line 530: | ||
* '' | * '' | ||
+ | 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 780: | Line 839: | ||
</ | </ | ||
- | ====== | + | ====== |
* http:// | * http:// | ||
* http:// | * http:// | ||
* [[http:// | * [[http:// | ||
+ | * https:// |
informatique/linux/programmation_shell.txt · Last modified: 2023/10/02 13:35 by pteu