Bash Loop Through a List of Strings

Bash Loop Through List Strings



En liste over strenger eller matrise eller rekkefølge av elementer kan gjentas ved hjelp av til sløyfe i bash. Hvordan du kan gjenta listen over strenger i Bash by for loop er vist i denne opplæringen ved å bruke forskjellige bash -skripteksempler. Hvis du er nybegynner, er bash -programmering, kan du lese opplæringen på BASH For løkkeeksempler før du starter denne opplæringen.

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/bash
DataList='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/sh
str_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: