Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:programmation:shells:tableaux [05/01/2015 06:23] smolski [script bash : Tableaux] |
doc:programmation:shells:tableaux [21/10/2015 13:48] milou [Ajout suppression] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== script bash : Tableaux ====== | ====== script bash : Tableaux ====== | ||
- | * Niveau requis : {{tag>débutant}} | + | * Objet : script bash : Tableaux |
+ | * Niveau requis : {{tag>débutant avisé}} | ||
+ | * Commentaires : FIXME | ||
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
* Suivi : | * Suivi : | ||
- | * Création par [[user>Hypathie]] 18/03/2014 | + | * Création par [[user>Hypathie]] le 18/03/2014 |
- | * Testé par <Hypathie> le <Juin 2014> | + | * Testé par [[user>Hypathie]] Juin 2014 |
- | * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=9181 | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | + | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=142812#p142812 | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) |
+ | |||
+ | |||
+ | Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! | ||
+ | |||
+ | ------ | ||
**Nota : Les autres wiki :** | **Nota : Les autres wiki :** | ||
- | * [[atelier:chantier:debuter-avec-les-scripts-shell-bash]] | + | * [[doc:programmation:shells:debuter-avec-les-scripts-shell-bash]] |
- | * [[atelier:chantier:script-bash-variables-arguments-parametres|script-bash-variables-arguments-parametres]] | + | * [[doc:programmation:shells:script-bash-variables-arguments-parametres|script-bash-variables-arguments-parametres]] |
- | * [[atelier:chantier:script-bash-detail-sur-les-parametres-et-les-boucles|modification de variable et de paramètre]] | + | * [[doc:programmation:shells:script-bash-detail-sur-les-parametres-et-les-boucles|modification de variable et de paramètre]] |
- | * [[atelier:chantier:script-bash-enchainement-de-commandes-et-etat-de-sortie|script-bash-enchainement-de-commandes-et-etat-de-sortie]] | + | * [[doc:programmation:shells:script-bash-enchainement-de-commandes-et-etat-de-sortie|script-bash-enchainement-de-commandes-et-etat-de-sortie]] |
- | * [[atelier:chantier:script-bash-etat-de-sorie-et-les-tests|script-bash-etat-de-sorie-et-les-tests]] | + | * [[doc:programmation:shells:script-bash-etat-de-sorie-et-les-tests|script-bash-etat-de-sortie-et-les-tests]] |
* ;-) | * ;-) | ||
- | * [[atelier:chantier:script-bash-les-fonctions|script-bash-les-fonctions]] | + | * [[doc:programmation:bash:script:fonction|script-bash-les-fonctions]] |
- | Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! | ||
===== Utiliser des tableaux ===== | ===== Utiliser des tableaux ===== | ||
Ligne 62: | Ligne 68: | ||
=== Exemple === | === Exemple === | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
array=([2]=nom1 nom2 [6]=nom3) # (1) | array=([2]=nom1 nom2 [6]=nom3) # (1) | ||
Ligne 81: | Ligne 87: | ||
./mon-script | ./mon-script | ||
</code> | </code> | ||
- | <code> | + | <file config retour de la commande> |
2 3 6 | 2 3 6 | ||
0 1 2 | 0 1 2 | ||
Ligne 87: | Ligne 93: | ||
nom nom nom nom nom | nom nom nom nom nom | ||
0 1 2 3 4 | 0 1 2 3 4 | ||
- | </code> | + | </file> |
>''2 3 6'' : la première valeur a l'indice 2 ; la deuxième a l'indice 3 ; la troisième a l'indice 6. | >''2 3 6'' : la première valeur a l'indice 2 ; la deuxième a l'indice 3 ; la troisième a l'indice 6. | ||
+ | > | ||
>''0 1 2'' : Il y a une valeur dans les cases d'indice 0, d'indice 1, d'indice 2. | >''0 1 2'' : Il y a une valeur dans les cases d'indice 0, d'indice 1, d'indice 2. | ||
+ | > | ||
>''0 1 2'' : idem | >''0 1 2'' : idem | ||
- | >''0 1 2 3 4'' : Sans indice donné manuellement, les indices attribués aux valeurs\\ suivent l'ordre des entiers naturels en __commençant à zéro__. | + | > |
+ | >''0 1 2 3 4'' : Sans indice donné manuellement, les indices attribués aux valeurs suivent l'ordre des entiers naturels en __commençant à zéro__. | ||
==== Récupération de valeur(s) ==== | ==== Récupération de valeur(s) ==== | ||
Ligne 131: | Ligne 140: | ||
===== Exemple ===== | ===== Exemple ===== | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
# méthodes 1 : | # méthodes 1 : | ||
Ligne 169: | Ligne 178: | ||
(l'ordre des options n'a pas d'importance.) | (l'ordre des options n'a pas d'importance.) | ||
Les syntaxes précédentes peuvent aussi être utilisées : | Les syntaxes précédentes peuvent aussi être utilisées : | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
declare -ai tab=(18 2 -2) | declare -ai tab=(18 2 -2) | ||
Ligne 185: | Ligne 194: | ||
</code> | </code> | ||
- | <code> | + | <file config retour de la commande> |
18 2 -2 | 18 2 -2 | ||
2 4 6 | 2 4 6 | ||
Ligne 191: | Ligne 200: | ||
5 6 7 8 9 | 5 6 7 8 9 | ||
5 6 7 8 9 | 5 6 7 8 9 | ||
- | </code> | + | </file> |
===== Ajout suppression ===== | ===== Ajout suppression ===== | ||
* Pour ajouter un élément à un tableau : ''tableau[${#tableau[*]}]=element'' | * Pour ajouter un élément à un tableau : ''tableau[${#tableau[*]}]=element'' | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
tableau=( bleu jaune rouge ) | tableau=( bleu jaune rouge ) | ||
Ligne 211: | Ligne 220: | ||
* Pour ajouter un élément au début d'un tableau : ''tableau=( element ${tableau[*]} )'' | * Pour ajouter un élément au début d'un tableau : ''tableau=( element ${tableau[*]} )'' | ||
- | <code bash> | + | <code bash script> |
#!/bin/bash | #!/bin/bash | ||
tab=( noir blanc ) | tab=( noir blanc ) | ||
Ligne 225: | Ligne 234: | ||
* pour supprimer un tableau : ''unset nom-tableau'' | * pour supprimer un tableau : ''unset nom-tableau'' | ||
+ | |||
* pour supprimer la case d'un tableau : ''unset nom-tableau[indice] ...'' | * pour supprimer la case d'un tableau : ''unset nom-tableau[indice] ...'' | ||
Ligne 232: | Ligne 242: | ||
Il en va de même que précédemment : | Il en va de même que précédemment : | ||
* l'indice se récupère ainsi : ''${!tableau[@]}''; | * l'indice se récupère ainsi : ''${!tableau[@]}''; | ||
+ | |||
* la valeur se récupère ainsi : ''${tableau[@]}''; | * la valeur se récupère ainsi : ''${tableau[@]}''; | ||
| | ||
Ligne 248: | Ligne 259: | ||
</code> | </code> | ||
- | <code> | + | <file config retour de la commande> |
l'indice ici nom de la classe est : secondeB | l'indice ici nom de la classe est : secondeB | ||
le nombre d'élèves est ici la valeur : 29 | le nombre d'élèves est ici la valeur : 29 | ||
l'indice ici nom de la classe est : secondeA | l'indice ici nom de la classe est : secondeA | ||
le nombre d'élèves est ici la valeur : 30 | le nombre d'élèves est ici la valeur : 30 | ||
- | </code> | + | </file> |
* Il faut utiliser ''@'' (et non ''*'') pour que la boucle permette d'afficher **chacune des valeurs**. | * Il faut utiliser ''@'' (et non ''*'') pour que la boucle permette d'afficher **chacune des valeurs**. | ||
Ligne 306: | Ligne 317: | ||
**Merci à enikar pour ce script et cette réflexion sur IRC** 8-) | **Merci à enikar pour ce script et cette réflexion sur IRC** 8-) | ||
- | Mais aussi, après avoir vu [[atelier:chantier:script-bash-les-fonctions|les fonctions]] avec le script de captnfab : [[doc:programmation:shell:avancee#les-fonctions|Fonctionnalités avancées du Shell: Les fonctions]] | + | Mais aussi, après avoir vu [[doc:programmation:bash:script:fonction|script-bash-les-fonctions]] avec le script de captnfab : [[doc:programmation:shell:avancee#les-fonctions|Fonctionnalités avancées du Shell: Les fonctions]] |
==== Une astuce ==== | ==== Une astuce ==== | ||
Ligne 324: | Ligne 336: | ||
>(2) : Pour afficher tous les éléments du tableau. | >(2) : Pour afficher tous les éléments du tableau. | ||
- | Pour d'autres exemples: [[atelier:chantier:page-man-bash-v-les-tableaux#tableau-et-iteration-for|shell bash : tableaux et itération for]] | + | |
===== La suite c'est ici ===== | ===== La suite c'est ici ===== | ||
- | [[atelier:chantier:script-bash-les-fonctions|script-bash-les-fonctions]] | + | * [[doc:programmation:bash:script:fonction|script-bash-les-fonctions]] |