Bash Shell Script Itérer à travers les valeurs d'un tableau

Avoir un tableau de variables ne sert à rien sauf si vous pouvez utiliser ces valeurs d'une manière ou d'une autre. Cette recette technique montre quelques méthodes pour parcourir les valeurs d'un tableau dans le shell bash.


Prenons, par exemple, la définition de tableau ci-dessous:

noms = (Jennifer Tonya Anna Sadie)

L'expression suivante évalue toutes les valeurs du tableau:

$ {noms [@]}

Il peut également être utilisé partout où une variable ou une chaîne peut être utilisée.

Une simple boucle for peut parcourir ce tableau, une valeur à la fois:

pour nom dans $ {noms [@]}
faire
echo $ name
# autres choses sur $ name
terminé

Ce script parcourt les valeurs du tableau et les affiche, une par ligne. Des instructions supplémentaires peuvent être placées dans le corps de la boucle pour effectuer d'autres actions, telles que la modification de chaque fichier dans un tableau de noms de fichiers.

Il est parfois utile de parcourir en boucle un tableau et de connaître l'index numérique du tableau que vous utilisez (par exemple, pour pouvoir référencer un autre tableau avec le même index). La même boucle dans l'exemple ci-dessus peut également être réalisée de la manière suivante:

pour ((i = 0; i <$ {# noms [@]}; i ++)) echo $ {noms [$ i]} # yadda yadda terminé

Dans cet exemple, la valeur $ {# names [@]} correspond au nombre d'éléments dans le tableau (4 dans ce cas). Les éléments individuels du tableau sont accessibles, un à la fois, à l’aide de l’indice entier $ i en tant que $ {noms [$ i]}