Bash boucle à travers une liste de chaînes

Bash Loop Through List Strings



Une liste de chaînes ou un tableau ou une séquence d'éléments peut être itérée en utilisant pour boucle en bash. Comment vous pouvez itérer la liste des chaînes dans Bash par boucle for est montré dans ce didacticiel en utilisant divers exemples de script bash. Si vous êtes novice en programmation bash, vous pouvez lire le tutoriel sur Exemples de boucles BASH For avant de commencer ce tutoriel.

Créez un fichier bash nommé ' pour_list1.sh ' et ajoutez le script suivant. Une valeur de chaîne avec des espaces est utilisée dans la boucle for. Par défaut, la valeur de chaîne est séparée par un espace. La boucle For divisera la chaîne en mots et imprimera chaque mot en ajoutant une nouvelle ligne.







#!/bin/bash
# Lire une chaîne avec des espaces en utilisant la boucle for
pourvaleurdansj'aime programmer
faire
chassèrent valeur $
terminé

Sortir:



$frapperpour_list1.sh



Exemple-2 : Itérer une variable de chaîne à l'aide de la boucle for

Créez un fichier bash nommé ' pour_list2.sh ' et ajoutez le script suivant. Affecter un texte à la variable, StringVal et lisez la valeur de cette variable à l'aide de la boucle for. Cet exemple fonctionnera également comme l'exemple précédent et divisera la valeur de la variable en mots en fonction de l'espace.





#!/bin/bash
# Définir une variable de chaîne avec une valeur
StringVal=« Bienvenue sur linuxhint »

# Itérer la variable de chaîne en utilisant la boucle for
pourheuresdans $StringVal;faire
chassèrent $ heures
terminé

Sortir:

$frapperpour_list2.sh



Exemple-3 : Itérer un tableau de valeurs de chaîne

Créez un fichier bash nommé ' for_list3.sh ' et ajoutez le script suivant. Un tableau de valeurs de chaîne est déclaré avec type dans ce script. Deux valeurs du tableau qui contiennent de l'espace sont Linux Mint et Red Hat Linux . Ce script générera la sortie en divisant ces valeurs en plusieurs mots et en les imprimant en tant que valeur séparée. Mais ce n'est pas la sortie appropriée. La solution de ce type de problème est montrée dans l'exemple suivant.

#!/bin/bash

# Déclare un tableau de chaîne de type
déclarer TableauChaîne=('Linux Mint' 'Feutre' 'Red Hat Linux' 'Ubuntu' 'Debian' )

# Itérer le tableau de chaînes en utilisant la boucle for
pourheuresdans ${StringArray[@]};faire
chassèrent $ heures
terminé

Sortir:

$frapperfor_list3.sh

Exemple-4 : Imprimer la valeur de chaîne de plusieurs mots en tant que valeur unique

Créez un fichier bash nommé ' pour_list4.sh ' et ajoutez le script suivant. Dans cet exemple, chaque élément de la variable tableau, TableauChaîne contient les valeurs de deux mots. Pour imprimer chaque valeur sans fractionnement et résoudre le problème de l'exemple précédent, il vous suffit d'entourer la variable de tableau avec citation double dans la boucle for.

#!/bin/bash

# Déclarer un tableau de chaînes avec le type
déclarer TableauChaîne=('Windows XP' 'Windows 10' 'Windows ME' 'Windows 8.1'
'Windows Server 2016' )

# Lire les valeurs du tableau avec espace
pourheuresdans '${StringArray[@]}';faire
chassèrent $ heures
terminé

Sortir:

$frapperpour_list4.sh

Exemple-5 : Itération des valeurs de chaîne d'un tableau à l'aide de « * »

Créez un fichier bash nommé ' pour_list5.sh ' avec le code suivant. Ici, le symbole '*' est utilisé pour lire toutes les valeurs de chaîne du tableau. La première boucle for est utilisée pour afficher les valeurs du tableau sur plusieurs lignes et la seconde boucle for est utilisée pour afficher les valeurs du tableau sur une seule ligne.

#!/bin/bash

#Déclarer un tableau de chaînes
TableauLanguage=('PHP' 'Java' 'C #' 'C++' 'VB.Net' 'Python' 'Perle')

# Affiche les valeurs du tableau en lignes
chassèrent 'Imprimer chaque élément dans une nouvelle ligne'
pourval1dans ${LanguageArray[*]};faire
chassèrent $ val1
terminé

chassèrent ''

# Affiche les valeurs du tableau sur une ligne
chassèrent 'Imprimer tous les éléments sur une seule ligne'
pourval2dans '${LanguageArray[*]}';faire
chassèrent $val2
terminé
chassèrent ''

Sortir:

$frapperpour_list5.sh

Exemple-6 : Itération de valeurs de chaîne séparées par des virgules

Créez un nouveau fichier bash nommé ' for_list6.sh' avec le code suivant. Ici, virgule (,) est utilisé pour diviser les valeurs de chaîne. IFS variable est utilisée pour définir le séparateur de champ.

#!/bin/bash
Liste de données=' HTML5, CCS3, BootStrap, JQuery '
Field_Separator=$IFS

# définir une virgule comme séparateur de champ interne pour la liste de chaînes
IFS=,
pourheuresdans $ListeDonnées;
faire
chassèrent $ heures
terminé

IFS=$Field_Separator

Sortir:

$frapperpour_list6.sh

Exemple-7 : Lecture de plusieurs tableaux de chaînes ensemble

Créez un fichier bash nommé ' pour_list7.sh ' et ajoutez le script suivant. Dans cet exemple, deux tableaux de chaînes sont définis et combinés dans un autre tableau. La boucle for externe est utilisée pour lire le tableau combiné et la boucle for interne est utilisée pour lire chaque tableau interne.

# ! /bin/sh
str_array1=('Magento 2.2.4' « Woo Commerce »)
str_array2=('CodeIgnitor' 'Laravel')
combiner=(str_array1 str_array2)
pourgérédans ${combine[@]}
faire
évaluer 'pour val dans '${'$ arrÉlément'[@]}';do echo '$val';done'
terminé

Sortir:

$frapperpour_list7.sh

Exemple-8 : Utiliser pattern pour lire la liste des chaînes

Créez un nouveau fichier bash nommé pour_list8.sh avec le code suivant. Ici, '/, /' pattern est utilisé pour diviser les valeurs de chaîne en fonction de la virgule.

# ! /bin/sh

# Définir une liste de variable de chaîne
liste de chaînes=WordPress,Joomla,Magento

# Utilisez une virgule comme séparateur et appliquez comme motif
pourheuresdans ${stringList//,/ }
faire
chassèrent $ heures
terminé

Sortir:

$frapperpour_list8.sh

J'espère que les exemples de ce tutoriel vous aideront à comprendre l'utilisation de pour boucle pour itérer la liste des chaînes, pour une vidéo sur ce sujet, voir ci-dessous :