Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Comment Utiliser les Tableaux en Bash
#1

    Comment Utiliser les Tableaux en Bash

Qu'est-ce qu'un Tableau en Bash ?



    Un tableau en bash est une structure de données conçue pour stocker des informations de manière indexée. En d'autres termes, un tableau en bash est un groupe important de variables. Contrairement aux tableaux typiques utilisés dans d'autres langages de programmation, les tableaux en bash peuvent stocker différents types d'éléments. Par exemple, vous pouvez utiliser un tableau en bash pour stocker à la fois des chaînes de caractères et des nombres.


Il existe deux types de tableaux en bash :
       
  • Indexé - le tableau est référencé via des entiers ou des nombres.
  •    
  • Associatif - le tableau est référencé via des chaînes de caractères ou un ensemble de caractères et de mots.


    Rappelez-vous que bash ne prend pas en charge les tableaux multidimensionnels, il n'est donc pas possible d'ajouter un tableau dans un tableau.


Comment Déclarer un Tableau en Bash



    Il y a plusieurs façons de déclarer des tableaux indexés et associatifs en bash. Il est bon de noter que la taille du tableau bash n'a pas besoin d'être déclarée au préalable car les tableaux en bash n'ont pas de limite supérieure sur le nombre d'éléments qu'ils peuvent stocker.


Tableau Indexé



    Nous commencerons par un simple tableau indexé en bash. Par exemple, nous l'utiliserons pour créer une liste de différents moyens de transport.


declare -a TableauIndexe
TableauIndexe[0]=voiture
TableauIndexe[1]=avion
TableauIndexe[2]=vélo


    La même chose peut être réalisée sans le mot-clé declare :


TableauIndexe[0]=voiture
TableauIndexe[1]=avion
TableauIndexe[2]=vélo


    Ou, encore plus simple :


TableauIndexe=(voiture avion vélo)


    Rappelez-vous que l'indexation commence à 0, donc l'exemple ci-dessus attribuera l'élément voiture du tableau à l'indice 0.



    Cependant, il est possible de définir un tableau avec des indices :


TableauIndexe=([0]='voiture' [1]='avion' [2]='vélo')


    Une caractéristique intéressante des tableaux en bash est que suivre les numéros d'index dans l'ordre n'est pas nécessaire. Par exemple, vous pouvez déclarer uniquement le premier et le troisième élément tout en laissant le deuxième élément d'un tableau vide :


TableauIndexe[0]=voiture
TableauIndexe[2]=vélo


Tableau Associatif



    Alors que les tableaux indexés ne nécessitent pas le mot-clé declare, il ne sera pas possible de créer un tableau associatif en bash sans le déclarer au préalable :


declare -A TableauAssociatif


    Ensuite, ajoutez les valeurs. Gardez à l'esprit que la clé doit être une chaîne de caractères :


TableauAssociatif[couleur]=bleu
TableauAssociatif[type]=voiture
TableauAssociatif[vitesse_max]=200


    Une autre façon serait :


declare -A TableauAssociatif=( [couleur]=bleu [type]=voiture [vitesse_max]=200 )


Comment Ajouter une Variable à un Tableau en Bash



    Ajoutez facilement des variables en utilisant l'opérateur +=. Par exemple, le processus pour un tableau indexé ressemblerait à ceci :


TableauIndexe=(voiture avion vélo)
TableauIndexe+=(moto)


    Le tableau indexé a maintenant un nouvel élément. Rappelez-vous que cette méthode ajoute à la fin du tableau. Par conséquent, l'élément moto sera ajouté en tant que dernier élément.



    Pour les tableaux associatifs, le processus est très similaire. Sauf que vous devez spécifier les clés avec tous les éléments :


declare -A TableauAssociatif
TableauAssociatif[couleur]=bleu
TableauAssociatif+=( [roues]=alliage [moteur]=essence )


Comment Référencer et Afficher un Élément du Tableau



    Les utilisateurs peuvent référencer les valeurs du tableau bash en utilisant l'index de l'élément ou la clé. Pour cela, créez un tableau indexé :


TableauIndexe=(voiture avion vélo)


    Pour référencer la première variable du tableau, utilisez la syntaxe suivante :


${TableauIndexe[0]}


    Combinez-le avec echo, et vous obtiendrez ceci :


echo ${TableauIndexe[0]}


    La sortie vous montrera le premier élément. Dans ce cas, c'est voiture. La même logique s'applique lors de la référence et de l'affichage d'un tableau associatif :


declare -A TableauAssociatif=( [couleur]=bleu [type]=voiture [vitesse_max]=200 )
echo ${TableauAssociatif[type]}


    La sortie sera également voiture.


    Pour afficher tout le tableau, utilisez @ comme index. Le script complet ressemble à ceci :

Exemple de Tableau Indexé

    Vous pouvez également afficher les clés d'un tableau. Pour ce faire, ajoutez un point d'exclamation avant le nom du tableau :

Exemple de Tableau Associatif

Comment Supprimer des Éléments d'un Tableau en Bash



    Supprimer des éléments de tableau est similaire à leur référencement. Utilisez un index ou une clé combiné avec la commande unset pour supprimer un élément de tableau.


    Voici un exemple de suppression d'un seul élément d'un tableau indexé :

Supprimer un Élément de Tableau Indexé

    Une logique similaire s'applique aux tableaux associatifs :

Supprimer un Élément de Tableau Associatif

    Pour supprimer un tableau entier, spécifiez unset avec le nom du tableau comme indiqué ici :

Supprimer un Tableau Entier

    Rien n'est affiché après avoir essayé d'imprimer les éléments du tableau car la commande unset les a supprimés.


Comment Parcourir un Tableau en Boucle



    La création de boucles en bash est un aspect fondamental de l'apprentissage des bases du scripting en bash. Vous pouvez également utiliser des boucles avec des tableaux. Par exemple, le cas d'utilisation le plus courant est d'itérer sur chaque élément du tableau :

Parcourir un Tableau en Boucle

    Vous pouvez également combiner les clés avec les éléments du tableau et les afficher tous ensemble comme ceci :

Parcourir un Tableau Associatif en Boucle

Comment Passer un Tableau à une Fonction



    Les fonctions vous font gagner beaucoup de temps lors du scripting. Au lieu d'écrire le même code à plusieurs reprises, vous pouvez appeler une fonction déjà écrite. Nous allons combiner la boucle d'itération précédemment mentionnée et en faire une fonction :


function Iteration
{
m=${#TableauIndexe[@]}
for (( i=0; i do
echo ${TableauIndexe[$i]}
done
}
TableauIndexe=(voiture vélo avion)
Iteration ${TableauIndexe[@]}


    L'exécution de cette fonction dans la ligne de commande vous donnera le résultat suivant :

Passer un Tableau à une Fonction


   

   

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)