Bash loop gennem en liste over strenge

Bash Loop Through List Strings



En liste over strenge eller array eller rækkefølge af elementer kan gentages ved hjælp af til loop i bash. Hvordan du kan iterere listen over strenge i Bash by for loop vises i denne vejledning ved hjælp af forskellige bash script -eksempler. Hvis du er nybegynder i bash -programmering, kan du læse selvstudiet om BASH For sløjfeeksempler før du starter denne vejledning.

Opret en bash -fil ved navn ' for_list1.sh 'Og tilføj følgende script. En strengværdi med mellemrum bruges inden for loop. Som standard er strengværdi adskilt af mellemrum. For loop vil opdele strengen i ord og udskrive hvert ord ved at tilføje en ny linje.







#!/bin/bash
# Læs en streng med mellemrum ved hjælp af loop
tilværdiiJeg kan godt lide at programmere
gøre
smed ud $ værdi
Færdig

Produktion:



$bashfor_list1.sh



Eksempel-2: Iterering af en strengvariabel ved hjælp af loop

Opret en bash -fil ved navn ' for_list2.sh 'Og tilføj følgende script. Tildel en tekst til variablen, StringVal og læs værdien af ​​denne variabel ved hjælp af for loop. Dette eksempel vil også fungere som det foregående eksempel og opdele værdien af ​​variablen i ord baseret på mellemrummet.





#!/bin/bash
# Definer en strengvariabel med en værdi
StringVal='Velkommen til linuxhint'

# Iterér strengvariablen ved hjælp af loop
tiltimeri $ StringVal;gøre
smed ud $ timer
Færdig

Produktion:

$bashfor_list2.sh



Eksempel-3: Iterer en vifte af strengværdier

Opret en bash -fil ved navn ' for_list3.sh 'Og tilføj følgende script. En matrix af strengværdier deklareres med type i dette script. To værdier i arrayet, der indeholder plads, er Linux Mint og Red Hat Linux . Dette script genererer output ved at opdele disse værdier i flere ord og udskrive som separat værdi. Men dette er ikke den korrekte output. Løsningen på denne type problemer er vist i det næste eksempel.

#!/bin/bash

# Angiv en række strenge med type
erklære -til StringArray=('Linux Mint' 'Fedora' 'Red Hat Linux' 'Ubuntu' 'Debian' )

# Iterer strengen array ved hjælp af for loop
tiltimeri $ {StringArray [@]};gøre
smed ud $ timer
Færdig

Produktion:

$bashfor_list3.sh

Eksempel-4: Udskriv strengordværdi for flere ord som en enkelt værdi

Opret en bash -fil ved navn ' for_list4.sh 'Og tilføj følgende script. I dette eksempel er hvert element i matrixvariablen, StringArray indeholder værdier på to ord. For at udskrive hver værdi uden at opdele og løse problemet med forrige eksempel, skal du blot omslutte arrayvariablen med dobbelt tilbud inden for loop.

#!/bin/bash

# Deklarere en string array med type
erklære -til StringArray=('Windows XP' 'Windows 10' 'Windows ME' 'Windows 8.1'
'Windows Server 2016' )

# Læs arrayværdierne med plads
tiltimeri '$ {StringArray [@]}';gøre
smed ud $ timer
Færdig

Produktion:

$bashfor_list4.sh

Eksempel-5: Iterering af strengværdier for et array ved hjælp af '*'

Opret en bash -fil ved navn ' for_list5.sh 'Med følgende kode. Her bruges '*' symbolet til at læse alle strengværdier i arrayet. Den første til loop bruges til at vise array -værdier i flere linjer, og den anden til loop bruges til at vise array -værdier i en enkelt linje.

#!/bin/bash

#Deklarere en string array
LanguageArray=('PHP' 'Java' 'C #' 'C ++' 'VB.Net' 'Python' 'Perl')

# Udskriv arrayværdier i linjer
smed ud 'Udskriv hvert element i ny linje'
tilval1i $ {LanguageArray [*]};gøre
smed ud $val1
Færdig

smed ud ''

# Udskriv arrayværdier i en linje
smed ud 'Udskriv alle elementer i en enkelt linje'
tilval2i '$ {LanguageArray [*]}';gøre
smed ud $ val2
Færdig
smed ud ''

Produktion:

$bashfor_list5.sh

Eksempel-6: Iterering af kommaadskilte strengværdier

Opret en ny bash -fil ved navn ' for_list6.sh ’ med følgende kode. Her, komma (,) bruges til at opdele strengværdierne. IFS variabel bruges til at indstille feltseparatoren.

#!/bin/bash
Dataliste='HTML5, CCS3, BootStrap, JQuery'
Field_Separator=$ IFS

# sæt komma som intern feltseparator for strengelisten
IFS=,
tiltimeri $ DataList;
gøre
smed ud $ timer
Færdig

IFS=$ Field_Separator

Produktion:

$bashfor_list6.sh

Eksempel-7: Læsning af flere strengarrays sammen

Opret en bash -fil ved navn ' for_list7.sh 'Og tilføj følgende script. I dette eksempel defineres to strengarrays og kombineres til et andet array. Den ydre til sløjfe bruges til at læse det kombinerede array, og den indre til loop bruges til at læse hver indre array.

#! /bin/sh
str_array1=('Magento 2.2.4' 'WooCommerce')
str_array2=('CodeIgnitor' 'Laravel')
forene=(str_array1 str_array2)
tillykkedesi $ {kombinere [@]}
gøre
eval 'for val in' $ {'$ arrItem'[@]}'; gentag '$ val'; udført '
Færdig

Produktion:

$bashfor_list7.sh

Eksempel-8: Brug af mønster til at læse listen over strenge

Opret en ny bash -fil med navnet for_list8.sh med følgende kode. Her, ' /, /' mønster bruges til at opdele strengværdierne baseret på komma.

#! /bin/sh

# Definer en liste over strengvariabler
stringList= WordPress, Joomla, Magento

# Brug komma som separator og anvend som mønster
tiltimeri $ {stringList //,/}
gøre
smed ud $ timer
Færdig

Produktion:

$bashfor_list8.sh

Håber, eksemplerne på denne vejledning hjælper dig med at forstå brugen af til sløjfe for at gentage listen over strenge, for en video om dette emne, se nedenfor: