Bash Loop door een lijst met snaren

Bash Loop Through List Strings



Een lijst met strings of array of reeks elementen kan worden herhaald met behulp van voor loop in bash. Hoe je de lijst met strings in Bash door for loop kunt herhalen, wordt in deze tutorial getoond met behulp van verschillende bash-scriptvoorbeelden. Als je een beginner bent in bash-programmeren, kun je de tutorial lezen op: BASH For Loop-voorbeelden voordat u met deze zelfstudie begint.

Maak een bash-bestand met de naam ' for_list1.sh ' en voeg het volgende script toe. Een tekenreekswaarde met spaties wordt gebruikt binnen de for-lus. Standaard wordt de tekenreekswaarde gescheiden door een spatie. For loop splitst de string in woorden en drukt elk woord af door een nieuwe regel toe te voegen.







#!/bin/bash
# Lees een string met spaties en gebruik de for-lus
voorwaardeinIk hou van programmeren
doen
gooide uit $waarde
gedaan

Uitgang:



$bashfor_list1.sh



Voorbeeld-2: Een stringvariabele herhalen met for-lus

Maak een bash-bestand met de naam ' for_list2.sh ' en voeg het volgende script toe. Wijs een tekst toe aan de variabele, StringVal en lees de waarde van deze variabele met de for-lus. Dit voorbeeld werkt ook zoals het vorige voorbeeld en verdeelt de waarde van de variabele in woorden op basis van de spatie.





#!/bin/bash
# Definieer een stringvariabele met een waarde
StringVal='Welkom bij linuxhint'

# Herhaal de stringvariabele met for loop
vooruurin $StringVal;doen
gooide uit $ uur
gedaan

Uitgang:

$bashfor_list2.sh



Voorbeeld-3: Herhaal een reeks tekenreekswaarden

Maak een bash-bestand met de naam ' for_list3.sh ' en voeg het volgende script toe. In dit script wordt een array met tekenreekswaarden gedeclareerd met type. Twee waarden in de array die ruimte bevatten zijn Linux Mint en Red Hat Linux . Dit script genereert de uitvoer door deze waarden in meerdere woorden te splitsen en als afzonderlijke waarde af te drukken. Maar dit is niet de juiste output. De oplossing van dit type probleem wordt getoond in het volgende voorbeeld.

#!/bin/bash

# Declareer een array van string met type
verklaren -tot StringArray=('Linux Munt' 'Fedora' 'Red Hat Linux' 'Ubuntu' 'Debian' )

# Herhaal de string-array met de for-lus
vooruurin ${StringArray[@]};doen
gooide uit $ uur
gedaan

Uitgang:

$bashfor_list3.sh

Voorbeeld-4: Tekenreekswaarde van meerdere woorden afdrukken als een enkele waarde

Maak een bash-bestand met de naam ' for_list4.sh ' en voeg het volgende script toe. In dit voorbeeld wordt elk element van de arrayvariabele, StringArray bevat waarden van twee woorden. Om elke waarde af te drukken zonder te splitsen en het probleem van het vorige voorbeeld op te lossen, hoeft u alleen de arrayvariabele in te sluiten met dubbele aanhaling binnen voor lus.

#!/bin/bash

# Declareer een stringarray met type
verklaren -tot StringArray=('Windows XP' 'Windows 10' 'Windows ME' 'Windows 8.1'
'Windows Server 2016' )

# Lees de arraywaarden met spatie
vooruurin '${StringArray[@]}';doen
gooide uit $ uur
gedaan

Uitgang:

$bashfor_list4.sh

Voorbeeld-5: Stringwaarden van een array herhalen met '*'

Maak een bash-bestand met de naam ' for_list5.sh ' met de volgende code. Hier wordt het '*'-symbool gebruikt om alle tekenreekswaarden van de array te lezen. De eerste for-lus wordt gebruikt om arraywaarden in meerdere regels weer te geven en de tweede for-lus wordt gebruikt om arraywaarden in een enkele regel weer te geven.

#!/bin/bash

#Declareer een tekenreeksarray
TaalArray=('PHP' 'Java' 'C #' 'C++' 'VB.Net' 'Python' 'Perl')

# Print matrixwaarden in regels
gooide uit 'Print elk element in een nieuwe regel'
voorval1in ${LanguageArray[*]};doen
gooide uit $ val1
gedaan

gooide uit ''

# Print matrixwaarden op één regel
gooide uit 'Print alle elementen op één regel'
voorval2in '${LanguageArray[*]}';doen
gooide uit $val2
gedaan
gooide uit ''

Uitgang:

$bashfor_list5.sh

Voorbeeld-6: Door komma's gescheiden tekenreekswaarden herhalen

Maak een nieuw bash-bestand met de naam ' for_list6.sh' met de volgende code. Hier, komma (,) wordt gebruikt om de tekenreekswaarden te splitsen. IFS variabele wordt gebruikt om het veldscheidingsteken in te stellen.

#!/bin/bash
Gegevenslijst='HTML5, CCS3, BootStrap, JQuery'
Veld_Scheidingsteken=$IFS

# stel komma in als intern veldscheidingsteken voor de tekenreekslijst
IFS=,
vooruurin $DataLijst;
doen
gooide uit $ uur
gedaan

IFS=$Field_Separator

Uitgang:

$bashfor_list6.sh

Voorbeeld-7: Meerdere string-arrays samen lezen

Maak een bash-bestand met de naam ' for_list7.sh ' en voeg het volgende script toe. In dit voorbeeld worden twee stringarrays gedefinieerd en gecombineerd tot een andere array. De buitenste for-lus wordt gebruikt om de gecombineerde array te lezen en de binnenste for-lus wordt gebruikt om elke binnenste array te lezen.

#! /bin/sh
str_array1=('Magento 2.2.4' 'WooCommerce')
str_array2=('CodeOntsteker' 'Laravel')
combineren=(str_array1 str_array2)
voorbeheerdin ${combineren[@]}
doen
evalueren 'voor waarde in '${'$ arrArtikel'[@]}';do echo '$val';klaar'
gedaan

Uitgang:

$bashfor_list7.sh

Voorbeeld-8: Patroon gebruiken om de lijst met strings te lezen

Maak een nieuw bash-bestand met de naam for_list8.sh met de volgende code. Hier, ‘/, /’ patroon wordt gebruikt om de tekenreekswaarden te splitsen op basis van komma's.

#! /bin/sh

# Definieer een lijst met stringvariabelen
stringLijst=WordPress,Joomla,Magento

# Gebruik komma als scheidingsteken en pas toe als patroon
vooruurin ${stringList//,/ }
doen
gooide uit $ uur
gedaan

Uitgang:

$bashfor_list8.sh

Hoop, de voorbeelden van deze tutorial zullen je helpen het gebruik van te begrijpen for loop voor het herhalen van de lijst met strings, voor een video over dit onderwerp, zie hieronder: