Bash loop gjennom en liste over strenger

Bash loop gjennom en liste over strenger

En liste over strenger eller matrise eller sekvens av elementer kan itereres ved å bruke til sløyfe i bash. Hvordan du kan iterere listen over strenger i bash by for Loop vises i denne opplæringen ved å bruke forskjellige eksempler på bashskript. Hvis du er nybegynner er bash -programmering, kan du lese opplæringen på Bash for Loop -eksempler før du starter denne opplæringen.

Eksempel-1: iterere en streng med flere ord i for loop

Lag en bash -fil som heter 'for_list1.sh 'og legg til følgende skript. En strengverdi med mellomrom brukes innenfor sløyfe. Som standard skilles strengverdien med plass. For sløyfe vil delte strengen i ord og skrive ut hvert ord ved å legge til en ny linje.

#!/bin/bash
# Les en streng med mellomrom som bruker for loop
for verdi i jeg liker programmering
gjøre
ekko $ verdi
Ferdig

Produksjon:

$ bash for_list1.sh

Eksempel-2: iterere en strengvariabel som bruker for loop

Lag en bash -fil som heter 'for_list2.sh 'og legg til følgende skript. Tilordne en tekst i variabelen, StringVal og les verdien av denne variabelen som bruker for loop. Dette eksemplet vil også fungere som det forrige eksemplet og dele verdien av variabelen i ord basert på rommet.

#!/bin/bash
# Definer en strengvariabel med en verdi
StringVal = "Velkommen til Linuxhint"
# Iterer strengvariabelen som bruker for loop
For Val i $ StringVal; gjøre
Echo $ val
Ferdig

Produksjon:

$ bash for_list2.sh

Eksempel-3: itererer en rekke strengverdier

Lag en bash -fil som heter 'for_list3.sh 'og legg til følgende skript. En rekke strengverdier er deklarert med type i dette skriptet. To verdier i matrisen som inneholder rom er 'Linux Mint'Og'Red Hat Linux'. Dette skriptet vil generere utgangen ved å dele opp disse verdiene i flere ord og utskrift som egen verdi. Men dette er ikke riktig produksjon. Løsningen av denne typen problem vises i neste eksempel.

#!/bin/bash
# Erklære en rekke streng med type
erklære -a StringArray = ("Linux Mint" "Fedora"
"Red Hat Linux" "Ubuntu" "Debian")
# Itererer strenggruppen som bruker for loop
for val in $ stringArray [@]; gjøre
Echo $ val
Ferdig

Produksjon:

$ bash for_list3.sh

Eksempel-4: Skriv ut flere ord Strengverdi som en enkelt verdi

Lag en bash -fil som heter 'for_list4.sh 'og legg til følgende skript. I dette eksemplet er hvert element i matrisevariabelen, StringArray inneholder verdier av to ord. For å skrive ut hver verdi uten å dele opp og løse problemet med tidligere eksempel, trenger du bare å legge ved matrisvariabelen med Dobbelt tilbud innenfor for loop.

#!/bin/bash
# Erklære en strengmatrise med type
erklære -a StringArray = ("Windows XP" "Windows 10"
"Windows Me" "Windows 8.1 "" Windows Server 2016 ")
# Les arrayverdiene med plass
for val i "$ stringArray [@]"; gjøre
Echo $ val
Ferdig

Produksjon:

$ bash for_list4.sh

Eksempel-5: iterende strengverdier for en matrise ved bruk av '*'

Lag en bash -fil som heter 'for_list5.sh 'med følgende kode. Her brukes '*' Symbol til å lese alle strengverdier for matrisen. Den første for loop brukes til å vise arrayverdier i flere linjer, og den andre for loop brukes til å vise arrayverdier i en enkelt linje.

#!/bin/bash
#Declare en strengmatrise
LanguageArray = ("PHP" "Java" "C#" "C ++" "VB.Nett "" python "" perl ")
# Skriv ut arrayverdier i linjer
ekko "Skriv ut hvert element i ny linje"
for val1 i $ languageArray [*]; gjøre
Echo $ val1
Ferdig
ekko ""
# PRINT ARRAY -verdier i en linje
Ekko "Skriv ut alle elementer i en enkelt linje"
for val2 i "$ languageArray [*]"; gjøre
Echo $ val2
Ferdig

Produksjon:

$ bash for_list5.sh

Eksempel-6: Iterering av komma-separerte strengverdier

Lag en ny bash -fil som heter 'for_list6.sh 'med følgende kode. Her, komma (,) brukes til å dele strengverdiene. Ifs Variabel brukes til å stille inn feltseparatoren.

#!/bin/bash
Datalist = "HTML5, CCS3, Bootstrap, JQuery"
FIELD_SEPARATOR = $ IFS
# Angi komma som internt feltskiller for strenglisten
Ifs =,
for val i $ datalist;
gjøre
Echo $ val
Ferdig
IFS = $ Field_Separator

Produksjon:

$ bash for_list6.sh

Eksempel-7: Lesing av flere strengmatriser sammen

Lag en bash -fil som heter 'for_list7.sh 'og legg til følgende skript. I dette eksemplet er to strengmatriser definert og kombinert til en annen matrise. Det ytre for loop brukes til å lese den kombinerte matrisen, og det indre for loop brukes til å lese hver indre matrise.

#! /bin/bash
str_array1 = ("Magento 2.2.4 "" WooCommerce ")
str_array2 = ("codeignitor" "laravel")
Combine = (str_array1 str_array2)
for arritem i $ combine [@]
gjøre
eval 'for val i "$ ' $ arritem '[@]"; do ekko "$ val"; done'
Ferdig

Produksjon:

$ bash for_list7.sh

Eksempel-8: Bruke mønster for å lese listen over strenger

Lag en ny bash -fil som heter for_list8.sh med følgende kode. Her, ' /, /' Mønster brukes til å dele strengverdiene basert på komma.

#!/bin/bash
# Definer en liste over strengvariabel
StringList = WordPress, Joomla, Magento
# Bruk komma som separator og bruk som mønster
for val in $ stringList //,/
gjøre
Echo $ val
Ferdig

Produksjon:

$ bash for_list8.sh

Håper, eksemplene på denne opplæringen vil hjelpe deg å forstå bruken av for sløyfe For å iterere listen over strenger, for en video om dette emnet, se nedenfor: