Bash Loop läbi stringide loendi

Bash Loop Through List Strings



Stringide või massiivi või elementide jada loendit saab kasutada, kasutades eest silmus bashis. Selles juhendis on näidatud, kuidas Bash by for loopi stringide loendit itereerida, kasutades erinevaid bash -skriptide näiteid. Kui olete algaja bash -programmeerija, saate õpetust lugeda BASH silmuste näidete jaoks enne selle õpetuse alustamist.

Looge bash -fail nimega ' for_list1.sh 'Ja lisage järgmine skript. Ahela sees kasutatakse tühikutega stringi väärtust. Vaikimisi eraldatakse stringi väärtus tühikuga. Loop jagab stringi sõnadeks ja prindib iga sõna uue rea lisamisega.







#!/bin/bash
# Lugege tühikutega stringi, kasutades tsüklit
eestväärtussisseMulle meeldib programmeerimine
teha
viskas välja $ väärtus
tehtud

Väljund:



$löömafor_list1.sh



Näide-2: stringimuutuja kordamine, kasutades tsüklit

Looge bash -fail nimega ' for_list2.sh 'Ja lisage järgmine skript. Määrake muutujale tekst, StringVal ja lugege selle muutuja väärtust, kasutades tsüklit. See näide töötab samuti nagu eelmine näide ja jagab muutuja väärtuse tühikute põhjal sõnadeks.





#!/bin/bash
# Määrake väärtusega stringimuutuja
StringVal='Tere tulemast linuxhinti'

# Korda stringi muutujat, kasutades tsüklit
eesttundisisse $ StringVal;teha
viskas välja $ tundi
tehtud

Väljund:

$löömafor_list2.sh



Näide-3: kordage stringiväärtuste massiivi

Looge bash -fail nimega ' for_list3.sh 'Ja lisage järgmine skript. Selles skriptis on stringiväärtuste massiiv deklareeritud tüübiga. Massiivis on kaks ruumi sisaldavat väärtust Linux Mint ja Red Hat Linux . See skript genereerib väljundi, jagades need väärtused mitmeks sõnaks ja trükkides eraldi väärtusena. Kuid see pole õige väljund. Seda tüüpi probleemi lahendus on näidatud järgmises näites.

#!/bin/bash

# Deklareerige tüübiga stringide massiiv
kuulutama -juurde StringArray=('Linux Mint' 'Fedora' 'Red Hat Linux' 'Ubuntu' 'Debian' )

# Korda stringi massiivi, kasutades tsüklit
eesttundisisse $ {StringArray [@]};teha
viskas välja $ tundi
tehtud

Väljund:

$löömafor_list3.sh

Näide-4: printige mitme sõna stringiväärtus ühe väärtusena

Looge bash -fail nimega ' for_list4.sh 'Ja lisage järgmine skript. Selles näites on massiivi muutuja iga element StringArray sisaldab kahe sõna väärtusi. Iga väärtuse printimiseks ilma poolitamata ja eelmise näite probleemi lahendamiseks peate massiivi muutuja lisama kahekordne tsitaat silmuse sees.

#!/bin/bash

# Deklareerige tüübiga stringimassiiv
kuulutama -juurde StringArray=('Windows XP' 'Windows 10' 'Windows ME' 'Windows 8.1'
'Windows Server 2016' )

# Lugege massiivi väärtusi tühikuga
eesttundisisse '$ {StringArray [@]}';teha
viskas välja $ tundi
tehtud

Väljund:

$löömafor_list4.sh

Näide-5: massiivi stringiväärtuste kordamine, kasutades*

Looge bash -fail nimega ' for_list5.sh 'Järgmise koodiga. Siin kasutatakse sümbolit „*” massiivi kõigi stringiväärtuste lugemiseks. Esimest tsüklit kasutatakse massiivi väärtuste kuvamiseks mitmel real ja teist silmusel massiivi väärtuste kuvamiseks ühel real.

#!/bin/bash

#Deklareeri stringimassiiv
LanguageArray=('PHP' 'Java' 'C #' „C ++” „VB.Net” 'Python' 'Perl')

# Prindi massiivi väärtused ridadesse
viskas välja 'Printige iga element uuele reale'
eestval1sisse $ {LanguageArray [*]};teha
viskas välja $ val1
tehtud

viskas välja ''

# Prindige massiivi väärtused ühele reale
viskas välja 'Prindi kõik elemendid ühele reale'
eestval2sisse '$ {LanguageArray [*]}';teha
viskas välja $ 2
tehtud
viskas välja ''

Väljund:

$löömafor_list5.sh

Näide-6: komaga eraldatud stringiväärtuste kordamine

Looge uus bash -fail nimega ' for_list6.sh ' järgmise koodiga. Siin, koma (,) kasutatakse stringi väärtuste jagamiseks. IFS muutujat kasutatakse väljade eraldaja määramiseks.

#!/bin/bash
DataList=„HTML5, CCS3, BootStrap, JQuery”
Field_Spaparator=$ IFS

# määrake stringide loendi sisemise välja eraldajaks koma
IFS=,
eesttundisisse $ DataList;
teha
viskas välja $ tundi
tehtud

IFS=$ Field_Separator

Väljund:

$löömafor_list6.sh

Näide-7: mitme stringimassiivi koos lugemine

Looge bash -fail nimega ' for_list7.sh 'Ja lisage järgmine skript. Selles näites on määratletud kaks stringimassiivi ja need on ühendatud teise massiiviga. Välimist silmust kasutatakse kombineeritud massiivi lugemiseks ja sisemist silmust iga sisemise massiivi lugemiseks.

#! /bin/sh
str_array1=('Magento 2.2.4' 'WooCommerce')
str_array2=('CodeIgnitor' 'Laravel')
kombineerima=(str_array1 str_array2)
eestõnnestussisse $ {kombineeri [@]}
teha
eval 'väärtuses' $ {'$ arrItem'[@]}'; kaja '$ val'; valmis '
tehtud

Väljund:

$löömafor_list7.sh

Näide-8: Mustrite kasutamine stringide loendi lugemiseks

Looge uus bash -fail nimega for_list8.sh järgmise koodiga. Siin, „ /, /” mustrit kasutatakse stringiväärtuste jagamiseks koma alusel.

#! /bin/sh

# Määratlege stringimuutujate loend
stringList= WordPress, Joomla, Magento

# Kasutage eraldajana koma ja rakendage mustrina
eesttundisisse $ {stringList //,/}
teha
viskas välja $ tundi
tehtud

Väljund:

$löömafor_list8.sh

Loodetavasti aitavad selle õpetuse näited teil selle kasutamist mõista silmuse jaoks stringide loendi kordamise ja selleteemalise video kohta vaata allpool: