Les tableaux
Bash supporte les tableaux à une dimension. Aucune initialisation n'est nécessaire, mais si on tente d'afficher un tableau non initialisé, rien ne sera affiché. Le support des tableaux est un peu différent des autres langages de programmation. Il est possible directement d'assigner une valeur à un index particulier. Bash initialisera les autres index automatiquement.Création
declare -a mon_tableau
Bash créera un tableau vide.
Il est possible de créer un tableau en lui attribuant des valeurs.
mon_tableau[2]='test'
Bash initilisera mon_tableau[0] et mon_tableau[1] à vide.
Opération
La commande ci-dessous affichera l'item à la position spécifié par l'index.echo ${mon_tableau[index]}
La commande ci-dessous affichera tous les éléments du tableau
echo ${mon_tableau[*]}
La commande ci-dessous affichera le nombre d'élément du tableau
nbItem=${#mon_tableau[*]} echo $nbItem
Voici un exemple qui énumère les notions apprisent jusqu'à maintenant
#!/bin/bash #déclaration d'un tableau declare -a mon_tableau #initialisation du tableau mon_tableau=( nuage soleil neige ) #affiche le deuxième éléments soit neige echo ${mon_tableau[2]} #affiche tous les éléments du tableau, soit nuage, soleil et neige echo ${mon_tableau[*]} #affiche le nombre d'élément nbItem=${#mon_tableau[*]} echo $nbItem for ((i=0;i<$nbItem;i++)); do echo ${mon_tableau[${i}]} done
Les tableaux en bash peuvent contenir différent type de donnée. Il est donc possible d'avoir des int, des chaînes de caractère dans le même tableau sans problème. Il suffira de faire attention si des opérations sont faites entre les éléments du tableau.
declare -a mon_tableau2 mon_tableau2=( 7 99 avion ) mon_tableau2[3]=`expr ${mon_tableau2[0]} + ${mon_tableau2[1]}` #affichera 106 echo ${mon_tableau2[3]} mon_tableau2[4]=`expr ${mon_tableau2[0]} + ${mon_tableau2[2]}` #ceci générera une erreur car un int ne peut être ajouté à une string echo ${mon_tableau2[4]}
Il faut donc faire très attention lorsque différents types de donnée sont employé au sein du même tableau.