Lag en bash -fil med navnet ' for_list1.sh 'Og legg til følgende skript. En strengverdi med mellomrom brukes for loop. Som standard er strengverdien atskilt med mellomrom. For loop vil dele strengen i ord og skrive ut hvert ord ved å legge til en ny linje.
#!/bin/bash
# Les en streng med mellomrom ved hjelp av loop
tilverdiiJeg liker programmering
gjøre
kastet ut $ verdi
gjort
Produksjon:
$bashfor_list1.sh
Eksempel-2: Iterering av en strengvariabel ved bruk av loop
Lag en bash -fil med navnet ' for_list2.sh 'Og legg til følgende skript. Tilordne en tekst til variabelen, StringVal og les verdien av denne variabelen ved hjelp av for loop. Dette eksemplet vil også fungere som det forrige eksemplet og dele verdien av variabelen i ord basert på mellomrommet.
#!/bin/bash
# Definer en strengvariabel med en verdi
StringVal='Velkommen til linuxhint'
# Iterer strengvariabelen ved hjelp av for loop
tiltimeri $ StringVal;gjøre
kastet ut $ timer
gjort
Produksjon:
$bashfor_list2.sh
Eksempel-3: Iterer en rekke strengverdier
Lag en bash -fil med navnet ' for_list3.sh 'Og legg til følgende skript. En rekke strengverdier deklareres med type i dette skriptet. To verdier i matrisen som inneholder plass er Linux Mint og Red Hat Linux . Dette skriptet vil generere utdataene ved å dele disse verdiene i flere ord og skrive ut som en egen verdi. Men dette er ikke riktig utgang. Løsningen på denne typen problemer er vist i neste eksempel.
#!/bin/bash# Deklarere en rekke strenger med type
erklære -til StringArray=('Linux Mint' 'Fedora' 'Red Hat Linux' 'Ubuntu' 'Debian' )
# Iterer strengmatrisen ved hjelp av loop
tiltimeri $ {StringArray [@]};gjøre
kastet ut $ timer
gjort
Produksjon:
$bashfor_list3.sh
Eksempel-4: Skriv ut flere ord strengverdi som en enkelt verdi
Lag en bash -fil med navnet ' for_list4.sh 'Og legg til følgende skript. I dette eksemplet er hvert element i matrisevariabelen, StringArray inneholder verdier på to ord. For å skrive ut hver verdi uten å dele seg og løse problemet med forrige eksempel, trenger du bare å legge ved matrisevariabelen med dobbelt tilbud innen for sløyfe.
#!/bin/bash# Deklarere en strengmatrise med type
erklære -til StringArray=('Windows XP' 'Windows 10' 'Windows ME' 'Windows 8.1'
'Windows Server 2016' )
# Les matrisverdiene med plass
tiltimeri '$ {StringArray [@]}';gjøre
kastet ut $ timer
gjort
Produksjon:
$bashfor_list4.sh
Eksempel-5: Iterering av strengverdier for en matrise ved bruk av '*'
Lag en bash -fil med navnet ' for_list5.sh 'Med følgende kode. Her brukes ‘*’ symbolet for å lese alle strengverdiene i matrisen. Den første for sløyfe brukes til å vise matriseverdier i flere linjer, og den andre for sløyfe brukes til å vise matriseverdier på en enkelt linje.
#!/bin/bash#Deklarere en strengmatrise
LanguageArray=('PHP' 'Java' 'C #' 'C ++' 'VB.Net' 'Python' 'Perl')
# Skriv ut matrisverdier på linjer
kastet ut 'Skriv ut hvert element i ny linje'
tilval1i $ {LanguageArray [*]};gjøre
kastet ut $ val1
gjort
kastet ut ''
# Skriv ut matrisverdier på en linje
kastet ut 'Skriv ut alle elementene på en enkelt linje'
tilval2i '$ {LanguageArray [*]}';gjøre
kastet ut $ val2
gjort
kastet ut ''
Produksjon:
$bashfor_list5.sh
Eksempel-6: Iterering av kommaadskilte strengverdier
Lag en ny bash -fil med navnet ' for_list6.sh ’ med følgende kode. Her, komma (,) brukes til å dele strengverdiene. IFS variabel brukes til å angi feltseparatoren.
#!/bin/bashDataList='HTML5, CCS3, BootStrap, JQuery'
Field_Separator=$ IFS
# sett komma som intern feltseparator for strenglisten
IFS=,
tiltimeri $ DataList;
gjøre
kastet ut $ timer
gjort
IFS=$ Field_Separator
Produksjon:
$bashfor_list6.sh
Eksempel-7: Lese flere strengarrayer sammen
Lag en bash -fil med navnet ' for_list7.sh 'Og legg til følgende skript. I dette eksemplet defineres to strengarrayer og kombineres til en annen matrise. Den ytre for sløyfe brukes til å lese den kombinerte matrisen og den indre for sløyfen brukes til å lese hver indre matrise.
#! /bin/shstr_array1=('Magento 2.2.4' 'WooCommerce')
str_array2=('CodeIgnitor' 'Laravel')
kombinere=(str_array1 str_array2)
tilfikk tili $ {kombinere [@]}
gjøre
eval 'for val in' $ {'$ arrItem'[@]}'; ekko '$ val'; ferdig '
gjort
Produksjon:
$bashfor_list7.sh
Eksempel-8: Bruk mønster til å lese listen over strenger
Lag en ny bash -fil med navnet for_list8.sh med følgende kode. Her, ‘ /, /’ mønster brukes til å dele strengverdiene basert på komma.
#! /bin/sh# Definer en liste over strengvariabler
stringList= WordPress, Joomla, Magento
# Bruk komma som separator og bruk som mønster
tiltimeri $ {stringList //,/}
gjøre
kastet ut $ timer
gjort
Produksjon:
$bashfor_list8.sh
Håper, eksemplene på denne opplæringen vil hjelpe deg å forstå bruken av for sløyfe for å gjenta listen over strenger, for en video om dette emnet, se nedenfor: