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/bashGegevenslijst='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/shstr_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: