Tableaux sont des concepts importants en programmation ou en script. Les tableaux nous permettent de stocker et de récupérer des éléments sous forme de liste qui peuvent être utilisés pour certaines tâches. Dans bash, nous avons également des tableaux qui nous aident à créer des scripts dans la ligne de commande pour stocker les données sous forme de liste. Dans cet article, nous comprendrons les bases des tableaux dans les scripts bash.
Création de tableaux
Pour créer un tableau de base dans un script bash, nous pouvons utiliser la déclaration -un commande suivie du nom de la variable du tableau que vous souhaitez donner.
#!/bin/usr/env bash declare -a sport=( [0]=football [1]=cricket [2]=hockey [3]=basketball )>
OU
#!/bin/usr/env bash sport[0]=football sport[1]=cricket sport[2]=hockey sport[3]=basketball>
La valeur des éléments peut être n'importe quel entier, chaîne ou toute autre forme de données, selon vos souhaits. Nous pouvons voir que le tableau est déclaré dans un script bash de deux manières : la première semble plus pratique et moins compliquée à déclarer. Si nous voulons déclarer le tableau en une seule fois, le premier est le choix optimal, mais si les éléments doivent être ajoutés par morceaux, le second est un bon choix.
Impression des tableaux
Après avoir déclaré le tableau, si nous voulons afficher tous les éléments du tableau, nous pouvons utiliser le symbole @.
#!/bin/usr/env bash declare -a sport=( [0]=football [1]=cricket [2]=hockey [3]=basketball ) echo '${sport[@]}'> 
echo '${array_name[@]}'> Nous utilisons le [@] comme index du tableau pour afficher tous les éléments. Tous les éléments sont imprimés avec des espaces séparés. Les guillemets autour de la variable se développent et impriment tous les éléments du tableau.
Itérer sur le tableau
Pour parcourir un tableau un élément à la fois, nous pouvons utiliser des boucles et effectuer toutes les opérations dans le corps de celui-ci.
#!/bin/usr/env bash declare -a sport=( [0]=football [1]=cricket [2]=hockey [3]=basketball ) for i in ${nums[@]} do echo -e '$i
' done> 
Comme nous pouvons le voir, nous avons utilisé une boucle for pour imprimer les éléments du tableau un par un. Nous avons utilisé l'astuce de la section précédente consistant à obtenir tous les éléments du tableau et à les parcourir un par un dans la boucle for. Le ${array_name[@]} se développe en tous les éléments du tableau et la boucle for les parcourt un par un avec l'itérateur dans l'exemple, c'est le variable je , à l'intérieur du corps de la boucle for, nous imprimons le variable/itérateur i et ainsi parcourir le tableau.
Obtenez le nombre d'éléments dans le tableau
Pour récupérer le numéro du tableau d'éléments, nous pouvons utiliser l'opérateur # avant le nom du tableau dans le s de ${array_name[@]}.
#!/bin/usr/env bash declare -a sport=( [0]=football [1]=cricket [2]=hockey [3]=basketball ) echo '${#sport[@]}'> 
On renvoie donc la taille du tableau en utilisant la commande ${#sport[@]}, le # est utilisé pour obtenir la taille de la variable à côté, en utilisant les guillemets doubles, la valeur de la commande est évaluée et nous obtenons le nombre d'éléments dans le tableau comme souhaité.
Insérer un élément dans un tableau
Pour insérer un élément, c'est assez simple, nous devons définir l'index approprié de l'élément suivi de la valeur de l'élément que vous avez aimé donner.
#!/bin/usr/env bash declare -a sport=( [0]=football [1]=cricket [2]=hockey [3]=basketball ) echo '${sport[@]}' sport[4]='dodgeball' sport[2]='golf' echo '${sport[@]}'> 
Nous avons ajouté le 5ème élément (4ème index) dans le tableau et avons également modifié/édité le 3ème élément du tableau (2ème index). Le nom du tableau[index]=valeur c'est toutes les astuces pour ajouter, modifier ou initialiser les éléments du tableau.
Nous pouvons également ajouter des éléments à un tableau en utilisant l'opérateur +=.
#!/bin/usr/env bash declare -a sport=( [0]=football [1]=cricket [2]=hockey [3]=basketball ) echo '${sport[@]}' sport+=('golf' 'baseball') echo '${sport[@]}' echo 'Size : ${#sport[@]}'> 
Comme le montre l'exemple, nous pouvons ajouter plusieurs éléments au tableau avec un minimum de code. Nous utilisons array_name+=(elements) pour ajouter des éléments au tableau.
Supprimer un élément du tableau
Pour supprimer un élément du tableau, nous pouvons utiliser la commande unset. La commande prend le nom de la variable dans notre cas, le nom du tableau et l'index de cet élément. L'index peut également être relatif, c'est-à-dire -1 indiquant le dernier élément et -2 à l'avant-dernier et ainsi de suite.
#!/bin/usr/env bash declare -a sport=( [0]=football [1]=cricket [2]=hockey [3]=basketball ) unset sport[1] echo '${sport[@]}' echo '${#sport[@]}'> 
Comme nous pouvons le voir, unset arrayname[index] supprimera l'élément à l'index du tableau. De plus, la taille du tableau a été réduite de 4 à 3, ce qui indique que l'élément est entièrement supprimé et pas seulement remplacé par des espaces.
Utiliser des indices relatifs
Si nous utilisons des indices comme -1, -2, etc., les éléments sont référencés à partir du dernier élément et nous pouvons donc les supprimer ou les modifier avec un ordre relatif depuis l'arrière également.
#!/bin/usr/env bash declare -a sport=( [0]=football [1]=cricket [2]=hockey [3]=basketball ) unset sport[-3] echo '${sport[@]}'> 
Comme nous pouvons le voir, l'index 1 est également référencé par -3 à l'arrière et il devient donc relativement plus facile de référencer certains éléments dans un grand tableau.
Épisser un tableau
Nous pouvons épisser (sortir une potion) un tableau pour l'attribuer ou l'imprimer sur une autre variable/tableau.
#!/bin/usr/env bash declare -a sport sport+=('football' 'cricket' 'hockey' 'basketball') sport+=('golf' 'baseball') echo 'sport = ${sport[@]}' arr='${sport[@]:1:3}' echo 'arr = ${arr[@]}'> 
Nous avons retiré un morceau du tableau sport, c'est-à-dire l'élément compris entre les index 1 et 3 inclus, et l'avons attribué à la variable arr qui est également un tableau. L'opérateur @ récupère tous les éléments du tableau, puis nous pouvons diviser le tableau entre les indices 1 et 3 afin d'avoir les éléments en 1, 2 et 3 (cricket, hockey et baseball) du tableau sport.
Définir un tableau statique et imprimer les éléments du tableau
#To declare static Array programmingArray=(Java Python Ruby Perl) #In below 2 ways we can print the elements of the static array echo 'Way 1 of printing static values by using [@]:0 - ' ${programmingarray[@]$ echo 'Way 2 of printing static values by using [*]:0 - ' ${programmingarray[*]$> 
De 2 manières, nous pouvons imprimer des éléments d'un tableau statique
Exécution du programme
sh So, we can give as sh arraycheck2.sh # arraycheck2.sh is the name of the script file here>

Passer les arguments de ligne de commande dans un fichier de script
#All the array elements are stored in an array called programmingArray programmingArray=('$@') #Index values start from 0 #If we do not specify the index, it will take up the size of first index value echo 'Size of programmingArray at 0th location..:' $(#programmingArray[0]} echo 'Size of programmingArray at 1st location..:' $(#programmingArray[1]}> 
Le script ci-dessus peut être exécuté comme
# Ici Java, Python et Ruby sont des arguments de ligne de commande
processus Android acore
sh arrayCheck.sh Java Python Ruby>
Étapes d'exécution du script :
programmationArray=(Java Python Ruby)
#Java sera présent au 0ème index, sa taille peut être calculée de la manière ci-dessous
${#programmingArray[0]}
De même, Python sera présent au 1er index, sa taille peut être calculée de la manière ci-dessous
${#programmingArray[1]}
Sortir:

Itérer les valeurs du tableau en utilisant la boucle for
$@ donnera toutes les valeurs transmises via les arguments de ligne de commande et sera stocké dans un tableau.
Il peut être itéré en utilisant la boucle for
declare -a programmingArray=('$@') i=0 for programming in '$@' do echo 'Array value at index ' $i ' : ' $programming i=$((i+1)); done> 
Sortir:

Jetons un coup d'œil rapide à ce que représente chaque symbole.
| Syntaxe | Sortir |
| arr=() | arr[0]=3 Écraser le 1er élément arr+=(4) Ajouter une ou plusieurs valeurs str=$(ls) Enregistrer la sortie ls sous forme de chaîne arr=( $(ls) ) Enregistrer la sortie ls sous forme de tableau de fichiers ${arr[@]:s:n} Récupérer n éléments à partir de l'index |
| #Nous pouvons fournir un ensemble de valeurs comme ça arr=(un deux trois) | Pour initialiser un tableau |
| ${arr[0]} | Pour récupérer le premier élément. L'index commence toujours par 0 |
| ${arr[@]} | Pour récupérer tous les éléments et ensuite nous pouvons parcourir une boucle |
| ${!arr[@]} | Pour récupérer les indices de tableau seuls |
| ${#arr[@]} | Pour calculer la taille d'un tableau |
| arr[2]=3 | Pour écraser le 3ème élément, nous devons l'utiliser de cette façon. Comme l'index commence à 0, arr[2] est correct. |
| arr+=(40) | Pour ajouter une ou plusieurs valeurs, nous pouvons utiliser + puis attribuer avec = et donc += est utilisé. |
| str=$(ls) | Pour enregistrer la sortie de la commande ls sous forme de chaîne (l'exemple 4 est affiché pour cette sortie) |
| arr=( $(ls) ) | Pour enregistrer la sortie ls sous forme de tableau de fichiers (l'exemple 5 est présenté pour cette sortie) |
| ${arr[@]:s:n} | Pour récupérer n éléments commençant à l'index s |