logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

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 → ODT PDF Export

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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 05:59]
smolski [Utiliser des tableaux]
doc:programmation:shells:tableaux [21/10/2015 17:29]
milou [Conclusion]
Ligne 1: Ligne 1:
-====== script bash : les 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 : {{tag>​à-placer}} +  * Suivi :  
-    * Création par [[user>​Hypathie]] 18/​03/​2014 +    * Création par [[user>​Hypathie]] ​le 18/​03/​2014 
-    * Testé par <​Hypathiele <Juin 2014> +    * Testé par [[user>Hypathie]] ​Juin 2014 
-  * Commentaires sur le forum : [[https://​debian-facile.org/​viewtopic.php?​pid=92203#p92203 ​| 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 23: Ligne 28:
 <note important>​ <note important>​
 Les tableaux ne sont pas spécifiés par POSIX.\\ ​ Les tableaux ne sont pas spécifiés par POSIX.\\ ​
-Les tableaux indexés unidimensionnels sont pris en charge en utilisant la syntaxe et la sémantique similaire ​par la plupart des shells comme Korn.\\ ​+Les tableaux indexés unidimensionnels sont pris en charge en utilisant la syntaxe et la sémantique similaire ​à la plupart des shells comme Korn.\\ ​
 Pour plus détails voir : [[http://​wiki.bash-hackers.org/​syntax/​arrays]] Pour plus détails voir : [[http://​wiki.bash-hackers.org/​syntax/​arrays]]
 </​note>​ </​note>​
Ligne 62: Ligne 67:
 === Exemple === === Exemple ===
  
-<code bash>+<code bash mon-script>
 #!/bin/bash #!/bin/bash
 array=([2]=nom1 nom2 [6]=nom3) ​  # (1)  array=([2]=nom1 nom2 [6]=nom3) ​  # (1) 
Ligne 81: Ligne 86:
 ./​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 92:
 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 129: Ligne 137:
  
  
-=====Voici un script qui utilise tout cela=====+===== Exemple ​=====
  
-<code bash>+<code bash mon-script>
 #!/bin/bash #!/bin/bash
 # méthodes 1 : # méthodes 1 :
Ligne 164: Ligne 172:
 </​code>​ </​code>​
  
 +===== Nombres entiers =====
  
- 
-=====2)Tableau et nombres entiers===== 
 Si l'on souhaite créer un tableau d'​entiers,​ on utilise la commande ''​declare''​ avec l'​option ''​-ai''​.\\ ​ Si l'on souhaite créer un tableau d'​entiers,​ on utilise la commande ''​declare''​ avec l'​option ''​-ai''​.\\ ​
 (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 mon-script>
 #!/bin/bash #!/bin/bash
 declare -ai tab=(18 2 -2) declare -ai tab=(18 2 -2)
Ligne 181: Ligne 188:
 echo ${t[@]} echo ${t[@]}
 </​code>​ </​code>​
 +
 <code user> <code user>
 ./​mon-script ./​mon-script
 </​code>​ </​code>​
-<code>+ 
 +<file config retour de la commande>
 18 2 -2 18 2 -2
 2 4 6 2 4 6
Ligne 190: Ligne 199:
 5 6 7 8 9  5 6 7 8 9 
 5 6 7 8 9 5 6 7 8 9
-</code+</file> 
-=====3) Ajoutsuppression ​dans les tableaux=====+ 
 +===== 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 mon-script>
 #!/bin/bash #!/bin/bash
 tableau=( bleu jaune rouge ) tableau=( bleu jaune rouge )
Ligne 200: Ligne 211:
 echo ${tableau[*]} echo ${tableau[*]}
 </​code>​ </​code>​
 +
 <​code>​ <​code>​
 3 3
Ligne 207: Ligne 219:
   * 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 mon-script>
 #!/bin/bash #!/bin/bash
 tab=( noir blanc ) tab=( noir blanc )
Ligne 219: Ligne 231:
 colorless noir blanc colorless noir blanc
 </​code>​ </​code>​
 +
   * 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] ...''​
  
-=====4) Un tableau ​associatif=====+===== Tableau ​associatif ===== 
 Un tableau associatif est un tableau uni-dimentionnel à ceci près que les index sont des chaînes de caractères.\\ ​ Un tableau associatif est un tableau uni-dimentionnel à ceci près que les index sont des chaînes de caractères.\\ ​
-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[@]}'';​
   ​   ​
-<code bash>+<code bash mon-script>
 #!/bin/bash #!/bin/bash
 declare -A eleves=([secondeA]=30 [secondeB]=29) declare -A eleves=([secondeA]=30 [secondeB]=29)
Ligne 237: Ligne 253:
    done    done
 </​code>​ </​code>​
 +
 <code user> <code user>
 ./​mon-script ./​mon-script
 </​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 ​"de toutes"​ les valeurs.+  * Il faut utiliser ''​@''​ (et non ''​*''​) pour que la boucle permette d'​afficher ​**chacune ​des valeurs**.
  
 +===== Conclusion =====
  
-===== Conclusion =====+==== Récapitulatif ​====
  
-==== Récapitulatif==== +<code bash mon-script>
-<code bash>+
 #!/bin/bash #!/bin/bash
 tab=( rouge vert bleu) tab=( rouge vert bleu)
Ligne 277: Ligne 294:
 </​code>​ </​code>​
  
-==== Se creuser un peu les méninges==== +==== Se creuser un peu les méninges ==== 
-Comparez ses méthodes pour associer à l'​affichage,​ un à un , deux éléments du retours :\\ + 
-  * Avec un tableau : +Comparez ses méthodes pour associer à l'​affichage,​ un à un , deux éléments du retours : 
-<code bash>+  * Avec un tableau :<code bash mon-script>
 #​!/​bin/​bash ​                           #​!/​bin/​bash ​                          
 tableau=([1]=a [2]=b [3]=c) ​           tableau=([1]=a [2]=b [3]=c) ​          
Ligne 289: Ligne 306:
  
   * Avec les paramètres de position et une boucle :   * Avec les paramètres de position et une boucle :
-<code bash>+<code bash mon-scipt>
 set a b c  set a b c
 n=1 n=1
Ligne 299: Ligne 316:
 **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:shells:​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 305: Ligne 323:
 Lister avec numérotation tous les fichiers d'un répertoire Lister avec numérotation tous les fichiers d'un répertoire
  
-<code bash>+<code bash mon-script>
 #!/bin/bash #!/bin/bash
 directory=(/​*) # (1) directory=(/​*) # (1)
Ligne 317: Ligne 335:
 >(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]]
doc/programmation/shells/tableaux.txt · Dernière modification: 23/02/2023 02:34 par agp91

Pied de page des forums

Propulsé par FluxBB