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:debuter-avec-les-scripts-shell-bash [03/06/2014 14:44] Hypathie [E ) État de sortie et les tests] |
doc:programmation:shells:debuter-avec-les-scripts-shell-bash [03/06/2014 15:17] Hypathie [H) Les tableaux] |
||
---|---|---|---|
Ligne 881: | Ligne 881: | ||
</code> | </code> | ||
- | =====H ) Supprimer les paramètres de position===== | + | ====H ) Supprimer les paramètres de position==== |
- | ====Exemple==== | + | ===Exemple=== |
**même script que ci-dessus mais on dé-commente set - - (on enlève # ligne 5) :** | **même script que ci-dessus mais on dé-commente set - - (on enlève # ligne 5) :** | ||
Ligne 986: | Ligne 986: | ||
Voir le tableau des options ici: http://abs.traduc.org/abs-5.3-fr/ch30.html#optionsref | Voir le tableau des options ici: http://abs.traduc.org/abs-5.3-fr/ch30.html#optionsref | ||
</note> | </note> | ||
+ | =====H) Les tableaux ===== | ||
+ | **Voir : [[atelier:chantier:page-man-bash-v-les-tableaux|shell bash : les tableaux]]** | ||
+ | |||
+ | * **Rappels :** | ||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | tab=( rouge vert bleu) | ||
+ | echo ${tab[1]} | ||
+ | echo ${tab[@]} | ||
+ | |||
+ | tab[1]="orange" | ||
+ | echo ${tab[1]} | ||
+ | echo ${tab[@]} | ||
+ | |||
+ | echo $tab # $tab est un équivalment de $tab0 : il affichera le première élément | ||
+ | |||
+ | echo ${tab[@]} # affiche tous les éléments de même ${tab[*]} | ||
+ | echo ${#tab[@]} # pour avoir la longueur (nombres d'éléments dans le tableau): ${tab[@]} -1 | ||
+ | (moins un car on commence à zéro! | ||
+ | tab[8]="vert" # nlle affectation sur tab[8] | ||
+ | echo ${!tab[@]} # ! avoir la liste des indices du tableau | ||
+ | echo ${tab[@]} | ||
+ | |||
+ | for i in ${!tab[*]} ; do | ||
+ | echo $i : ${tab[$i]} | ||
+ | done | ||
+ | </code> | ||
+ | |||
+ | * ** Comparez :** | ||
+ | Avec tableau : | ||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | tableau=([1]=a [2]=b [3]=c) | ||
+ | for var in "${!tableau[@]}" ; do | ||
+ | echo "$var : ${tableau[$var]}" | ||
+ | done | ||
+ | </code> | ||
+ | |||
+ | Le script d'enikar : | ||
+ | |||
+ | <code bash> | ||
+ | set a b c | ||
+ | n=1 | ||
+ | for v in $@ ; do | ||
+ | echo "$n: $v" | ||
+ | let $[ n += 1 ] | ||
+ | done | ||
+ | </code> | ||
+ | **Merci à enikar pour cette réflexion sur IRC** | ||
+ | |||
+ | * astuce : lister avec numérotation tous les fichiers d'un répertoire : | ||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | directory=(/*) # tableau composé des chemins de les dossiers et fichiers de la racine | ||
+ | |||
+ | for i in ${!directory[@]} ; do | ||
+ | echo "$i : ${directory[$i]}" # là pour afficher tous les éléments du tableau | ||
+ | done | ||
+ | </code> | ||
=====I ) Les fonctions===== | =====I ) Les fonctions===== |