Bash-Schleife durch eine Liste von Strings

Bash Loop Through List Strings



Eine Liste von Strings oder Arrays oder Sequenzen von Elementen kann mit iteriert werden zum Schleife in bash. Wie Sie die Liste der Strings in Bash durch eine for-Schleife iterieren können, wird in diesem Tutorial anhand verschiedener Bash-Skriptbeispiele gezeigt. Wenn Sie Anfänger in der Bash-Programmierung sind, können Sie das Tutorial auf lesen BASH For Loop-Beispiele bevor Sie mit diesem Tutorial beginnen.

Erstellen Sie eine Bash-Datei mit dem Namen ‘ for_list1.sh ’ und fügen Sie das folgende Skript hinzu. In der for-Schleife wird ein Zeichenfolgenwert mit Leerzeichen verwendet. Standardmäßig wird der Zeichenfolgenwert durch Leerzeichen getrennt. Die For-Schleife teilt die Zeichenfolge in Wörter auf und gibt jedes Wort durch Hinzufügen eines Zeilenumbruchs aus.







#!/bin/bash
# Lies einen String mit Leerzeichen mit der for-Schleife
zumWertinIch programmiere gerne
tun
rauswerfen $Wert
getan

Ausgabe:



$bashfor_list1.sh



Beispiel-2: Iterieren einer String-Variablen mit der for-Schleife

Erstellen Sie eine Bash-Datei mit dem Namen ‘ for_list2.sh ’ und fügen Sie das folgende Skript hinzu. Weisen Sie der Variablen einen Text zu, StringVal und lesen Sie den Wert dieser Variablen mit der for-Schleife. Dieses Beispiel funktioniert auch wie das vorherige Beispiel und teilt den Wert der Variablen anhand des Leerzeichens in Wörter auf.





#!/bin/bash
# Definiere eine String-Variable mit einem Wert
StringVal='Willkommen bei linuxhint'

# Iteriere die String-Variable mit der for-Schleife
zumStdin $StringVal;tun
rauswerfen $ Stunden
getan

Ausgabe:

$bashfor_list2.sh



Beispiel-3: Iteriere ein Array von String-Werten

Erstellen Sie eine Bash-Datei mit dem Namen ‘ for_list3.sh ’ und fügen Sie das folgende Skript hinzu. In diesem Skript wird ein Array von Zeichenfolgenwerten mit type deklariert. Zwei Werte im Array, die Leerzeichen enthalten, sind Linux Mint und Red Hat Linux . Dieses Skript generiert die Ausgabe, indem diese Werte in mehrere Wörter aufgeteilt und als separater Wert gedruckt werden. Aber das ist nicht die richtige Ausgabe. Die Lösung dieses Problemtyps wird im nächsten Beispiel gezeigt.

#!/bin/bash

# Deklariere ein String-Array mit Typ
erklären -zu StringArray=('Linux-Mint' 'Fedora' „Red Hat-Linux“ 'Ubuntu' 'Debian' )

# Iteriere das String-Array mit der for-Schleife
zumStdin ${StringArray[@]};tun
rauswerfen $ Stunden
getan

Ausgabe:

$bashfor_list3.sh

Beispiel-4: Zeichenfolgenwert aus mehreren Wörtern als einzelnen Wert drucken

Erstellen Sie eine Bash-Datei mit dem Namen ‘ for_list4.sh ’ und fügen Sie das folgende Skript hinzu. In diesem Beispiel ist jedes Element der Array-Variablen StringArray enthält Werte von zwei Wörtern. Um jeden Wert ohne Aufteilung zu drucken und das Problem des vorherigen Beispiels zu lösen, müssen Sie nur die Array-Variable mit einschließen Doppelzitat innerhalb der for-Schleife.

#!/bin/bash

# Deklariere ein String-Array mit Typ
erklären -zu StringArray=('Windows XP' 'Windows10' 'Windows-ME' 'Windows 8.1'
„Windows-Server 2016“ )

# Lesen Sie die Array-Werte mit Leerzeichen
zumStdin '${StringArray[@]}';tun
rauswerfen $ Stunden
getan

Ausgabe:

$bashfor_list4.sh

Beispiel-5: Stringwerte eines Arrays mit ‚*‘ iterieren

Erstellen Sie eine Bash-Datei mit dem Namen ‘ for_list5.sh “ mit folgendem Code. Hier wird das Symbol '*' verwendet, um alle Stringwerte des Arrays zu lesen. Die erste for-Schleife wird verwendet, um Array-Werte in mehreren Zeilen anzuzeigen, und die zweite for-Schleife wird verwendet, um Array-Werte in einer einzigen Zeile anzuzeigen.

#!/bin/bash

#Ein String-Array deklarieren
SpracheArray=('PHP' 'Java' 'C #' 'C++' 'VB.Net' 'Python' 'Perl')

# Array-Werte in Zeilen ausgeben
rauswerfen 'Jedes Element in neue Zeile drucken'
zumval1in ${LanguageArray[*]};tun
rauswerfen $ val1
getan

rauswerfen ''

# Array-Werte in einer Zeile ausgeben
rauswerfen 'Alle Elemente in einer Zeile drucken'
zumval2in '${LanguageArray[*]}';tun
rauswerfen $val2
getan
rauswerfen ''

Ausgabe:

$bashfor_list5.sh

Beispiel-6: Durch Kommas getrennte Zeichenfolgenwerte iterieren

Erstellen Sie eine neue Bash-Datei mit dem Namen ‘ for_list6.sh’ mit folgendem Code. Hier, Komma (,) wird verwendet, um die Zeichenfolgenwerte aufzuteilen. IFS Variable wird verwendet, um das Feldtrennzeichen zu setzen.

#!/bin/bash
Datenliste=' HTML5, CCS3, BootStrap, JQuery '
Feld_Trennzeichen=$IFS

# Komma als internes Feldtrennzeichen für die Stringliste setzen
IFS=,
zumStdin $DataList;
tun
rauswerfen $ Stunden
getan

IFS=$Field_Separator

Ausgabe:

$bashfor_list6.sh

Beispiel-7: Mehrere String-Arrays zusammen lesen

Erstellen Sie eine Bash-Datei mit dem Namen ‘ for_list7.sh ’ und fügen Sie das folgende Skript hinzu. In diesem Beispiel werden zwei String-Arrays definiert und zu einem anderen Array kombiniert. Die äußere for-Schleife wird verwendet, um das kombinierte Array zu lesen, und die innere for-Schleife wird verwendet, um jedes innere Array zu lesen.

#! /bin/sh
str_array1=('Magento 2.2.4' 'WooCommerce')
str_array2=('CodeIgnitor' 'Laravel')
kombinieren=(str_array1 str_array2)
zumgelang esin ${kombinieren[@]}
tun
bewerten 'für Wert in '${'$ arrItem'[@]}';echo '$val';fertig'
getan

Ausgabe:

$bashfor_list7.sh

Beispiel-8: Verwenden von Muster zum Lesen der Liste der Zeichenfolgen

Erstellen Sie eine neue Bash-Datei namens for_list8.sh mit folgendem Code. Hier, ‘/, /’ pattern wird verwendet, um die Zeichenfolgenwerte basierend auf einem Komma aufzuteilen.

#! /bin/sh

# Definiere eine Liste von String-Variablen
Zeichenfolgenliste=WordPress,Joomla,Magento

# Komma als Trennzeichen verwenden und als Muster anwenden
zumStdin ${stringList//,/ }
tun
rauswerfen $ Stunden
getan

Ausgabe:

$bashfor_list8.sh

Ich hoffe, die Beispiele dieses Tutorials werden Ihnen helfen, die Verwendung von . zu verstehen für Schleife zum Iterieren der Liste der Zeichenfolgen, ein Video zu diesem Thema finden Sie unten: