Comment vérifier si un tableau bash contient une valeur

Comment vérifier si un tableau bash contient une valeur

Bash est un shell Unix largement utilisé qui fournit un ensemble d'outils puissants pour l'administration du système et l'automatisation. L'une des structures de programmation les plus couramment utilisées dans les scripts bash est un tableau, qui vous permet de stocker plusieurs valeurs en une seule variable, cet article discutera de la façon de vérifier si un tableau de bases contient une valeur spécifique.

Comment vérifier si Bash Array contient une valeur

Voici trois méthodes distinctes que vous pouvez utiliser pour déterminer si un tableau de bash comprend une valeur:

    • Utilisation d'une boucle
    • En utilisant la commande grep
    • Utilisation de la syntaxe $ array [@] / motif / remplacement

Méthode 1: Utilisation d'une boucle

Une façon de vérifier si un tableau bash contient une valeur est d'itérer le tableau à l'aide d'une boucle pour la boucle qui compare chaque élément avec la valeur que vous souhaitez trouver, voici un exemple:

#!/ bac / bash
CARS = ("BMW" "Volvo" "Kia")
car_to_find = "kia"
pour la voiture dans "$ Cars [@]"
faire
Si ["$ car" == "$ car_to_find"]
alors
Echo "Found $ car!"
casser
Fi
fait


Ici, j'ai une gamme de marques automobiles et je veux trouver la marque «Kia», donc j'imagine sur le tableau à l'aide d'une boucle pour une boucle et comparez chaque marque de voiture avec la marque que je veux trouver. Si nous trouvons une correspondance, nous imprimons un message et sortons de la boucle à l'aide de l'instruction BREAK.

Méthode 2: Utilisation de la commande grep

L'utilisation de la commande grep pour rechercher la valeur dans le tableau est une autre technique pour déterminer si un tableau bash a une valeur, voici une illustration:

#!/ bac / bash
CARS = ("BMW" "Volvo" "Kia")
car_to_find = "kia"
Si echo "$ Cars [@]" | grep -qw "$ car_to_find"; alors
Echo "Found $ car_to_find!"
autre
echo "$ car_to_find introuvable."
Fi


Ici, nous avons utilisé la commande echo pour imprimer le tableau à la sortie standard et le tuer sur Grep. L'option -Q indique que Grep est silencieux et ne renvoie qu'un code d'état indiquant si le modèle a été trouvé ou non. L'option -W indique à Grep de correspondre au modèle en tant que mot entier. Si Grep trouve le modèle, l'instruction IF imprime un message indiquant que la valeur a été trouvée.

Méthode 3: Utilisation de $ array [@] / motif / remplacement Syntaxe

Une troisième façon de vérifier si un tableau bash contient une valeur consiste à utiliser la syntaxe $ array [@] / motive / remplacement pour remplacer la valeur que vous souhaitez trouver par une chaîne différente, puis comparer le tableau résultant par l'original déployer. Voici un exemple:

#!/ bac / bash
CARS = ("BMW" "Volvo" "Kia")
car_to_find = "kia"
Si [["$ Cars [@] / $ car_to_find /" != "$ Cars [@]"]]; alors
Echo "Found $ car_to_find!"
autre
echo "$ car_to_find introuvable."
Fi


Ici, nous utilisons la syntaxe $ array [@] / motif / remplacement pour supprimer la valeur que nous voulons trouver du tableau et si le tableau résultant est différent du tableau d'origine, cela signifie que la valeur a été trouvée.

Conclusion

Nous avons discuté de trois méthodes différentes pour vérifier si un tableau bash contient une valeur qui est: en utilisant une boucle, en utilisant la commande grep et en utilisant $ array [@] / motif / remplacement Syntaxe. En utilisant ces techniques, vous pouvez rechercher efficacement via des tableaux bash et effectuer les opérations nécessaires sur les valeurs que vous trouvez.