Bash Loop via une liste de chaînes

Bash Loop via une liste de chaînes

Une liste de chaînes ou de tableau ou de 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 en bash par la boucle est affichée dans ce tutoriel en utilisant divers exemples de script bash. Si vous êtes novice est une programmation de bash, vous pouvez lire le tutoriel sur Bash pour les exemples de boucle avant de commencer ce tutoriel.

Exemple-1: itération d'une chaîne de mots multiples à l'intérieur de la boucle

Créer un fichier bash nommé 'for_list1.sh 'et ajouter le script suivant. Une valeur de chaîne avec des espaces est utilisée à l'intérieur pour la boucle. Par défaut, la valeur de la chaîne est séparée par l'espace. Car Loop divisera la chaîne en mots et imprimera chaque mot en ajoutant une nouvelle ligne.

#!/ bac / bash
# Lisez une chaîne avec des espaces utilisant pour Loop
pour la valeur dans j'aime la programmation
faire
Echo $ valeur
fait

Sortir:

$ bash for_list1.shot

Exemple-2: itération d'une variable de chaîne à l'aide de la boucle

Créer un fichier bash nommé 'for_list2.sh 'et ajouter le script suivant. Attribuer un texte dans la variable, Stringval et lire la valeur de cette variable en utilisant pour Loop. Cet exemple fonctionnera également comme l'exemple précédent et divisera la valeur de la variable en mots en fonction de l'espace.

#!/ bac / bash
# Définir une variable de chaîne avec une valeur
StringVal = "Bienvenue sur Linuxhint"
# Itérer la variable de chaîne en utilisant pour la boucle
pour Val dans $ stringval; faire
Echo $ Val
fait

Sortir:

$ bash for_list2.shot

Exemple-3: itérez un tableau de valeurs de chaîne

Créer un fichier bash nommé 'for_list3.sh 'et ajouter le script suivant. Un tableau de valeurs de chaîne est déclaré avec le type dans ce script. Deux valeurs dans le tableau qui contiennent l'espace sont 'Linux' et 'Chapeau rouge Linux'. Ce script générera la sortie en divisant ces valeurs en plusieurs mots et en impression comme valeur distincte. Mais ce n'est pas la sortie appropriée. La solution de ce type de problème est montrée dans l'exemple suivant.

#!/ bac / bash
# Déclarer un tableau de chaîne avec type
Declare -a StringArray = ("Linux Mint" "Fedora"
"Red Hat Linux" "Ubuntu" "Debian")
# Itérer le tableau de chaîne en utilisant pour la boucle
pour val dans $ stringArray [@]; faire
Echo $ Val
fait

Sortir:

$ bash for_list3.shot

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

Créer un fichier bash nommé 'for_list4.sh 'et ajouter le script suivant. Dans cet exemple, chaque élément de la variable de tableau, Stringarray contient des 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 de joindre la variable de tableau avec double citation à l'intérieur pour Loop.

#!/ bac / bash
# Déclarez un tableau de chaînes avec type
Declare -a StringArray = ("Windows XP" "Windows 10"
"Windows Me" "Windows 8.1 "" Windows Server 2016 ")
# Lisez les valeurs du tableau avec l'espace
pour Val dans "$ stringArray [@]"; faire
Echo $ Val
fait

Sortir:

$ bash for_list4.shot

Exemple-5: itération des valeurs de chaîne d'un tableau utilisant '*'

Créer un fichier bash nommé 'for_list5.sh 'avec le code suivant. Ici, le symbole '*' est utilisé pour lire toutes les valeurs de chaîne du tableau. Le premier pour Loop est utilisé pour afficher les valeurs du tableau en plusieurs lignes et la seconde pour Loop est utilisée pour afficher les valeurs du tableau en une seule ligne.

#!/ bac / bash
#Declare un tableau de chaînes
LanguageArray = ("php" "Java" "C #" "C ++" "VB.Net "" python "" perl ")
# Imprimer les valeurs du tableau en lignes
Echo "Imprimez chaque élément dans une nouvelle ligne"
pour val1 dans $ LanguageArray [*]; faire
Echo Val1
fait
écho ""
# Imprimer les valeurs du tableau en une seule ligne
Echo "Imprimer tous les éléments en une seule ligne"
Pour Val2 dans "$ LanguageArray [*]"; faire
Echo Val2
fait

Sortir:

$ bash for_list5.shot

Exemple-6: Valeurs de chaîne séparées par des virgules itératives

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

#!/ bac / bash
Datalist = "HTML5, CCS3, bootstrap, jQuery"
Field_separator = $ ifs
# Définissez la virgule comme séparateur de champ interne pour la liste des chaînes
Ifs =,
pour Val dans $ datalist;
faire
Echo $ Val
fait
Ifs = $ field_separator

Sortir:

$ bash for_list6.shot

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

Créer un fichier bash nommé 'for_list7.sh 'et ajouter le script suivant. Dans cet exemple, deux tableaux de chaînes sont définis et combinés dans un autre tableau. La boucle extérieure est utilisée pour lire le tableau combiné et la boucle intérieure pour la boucle est utilisée pour lire chaque tableau intérieur.

#! / bac / bash
str_array1 = ("magento 2.2.4 "" WooCommerce ")
str_array2 = ("codeignitor" "Laravel")
combine = (str_array1 str_array2)
pour Arritem dans $ combiner [@]
faire
ev 'pour val dans "$ ' $ arritem '[@]"; do echo "$ val"; Done'
fait

Sortir:

$ bash for_list7.shot

Exemple-8: Utilisation du modèle pour lire la liste des chaînes

Créer un nouveau fichier bash nommé for_list8.shot avec le code suivant. Ici, '/, /' Le modèle est utilisé pour diviser les valeurs de chaîne en fonction de la virgule.

#!/ bac / bash
# Définir une liste de variables de chaîne
StringList = WordPress, Joomla, Magento
# Utilisez la virgule comme séparateur et appliquez comme modèle
pour Val dans $ StringList //, /
faire
Echo $ Val
fait

Sortir:

$ bash for_list8.shot

Hope, 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: