Bash Loop prostredníctvom zoznamu reťazcov

Bash Loop Through List Strings



Zoznam reťazcov alebo poľa alebo sekvencie prvkov je možné iterovať pomocou pre slučka v bash. Ako môžete iterovať zoznam reťazcov v slučke Bash by for, je ukázané v tomto tutoriále pomocou rôznych príkladov skriptu bash. Ak ste nováčik v programovaní bash, potom si môžete prečítať návod na BASH pre príklady slučiek pred spustením tohto tutoriálu.

Vytvorte bash súbor s názvom „ for_list1.sh “A pridajte nasledujúci skript. V cykle for sa používa reťazcová hodnota s medzerami. Štandardne je hodnota reťazca oddelená medzerou. Slučka For rozdelí reťazec na slová a každé slovo vytlačí pridaním nového riadka.







#!/bin/bash
# Prečítajte si reťazec s medzerami pomocou cyklu for
prehodnotuvRád programujem
urobiť
zahodil hodnota $
hotový

Výkon:



$bashfor_list1.sh



Príklad 2: Iterácia reťazcovej premennej pomocou cyklu for

Vytvorte bash súbor s názvom „ for_list2.sh “A pridajte nasledujúci skript. Priraďte text do premennej, StringVal a prečítajte hodnotu tejto premennej pomocou cyklu for. Tento príklad bude fungovať rovnako ako predchádzajúci príklad a rozdelí hodnotu premennej na slová na základe medzery.





#!/bin/bash
# Definujte reťazcovú premennú s hodnotou
StringVal='Welcome to linuxhint'

# Opakujte premennú reťazca pomocou cyklu for
prehodv $ StringVal;urobiť
zahodil $ hodín
hotový

Výkon:

$bashfor_list2.sh



Príklad 3: Iterujte pole reťazcových hodnôt

Vytvorte bash súbor s názvom „ for_list3.sh “A pridajte nasledujúci skript. V tomto skripte je s typom deklarované pole reťazcových hodnôt. Dve hodnoty v poli, ktoré obsahujú medzeru, sú Linuxová mincovňa a Red Hat Linux . Tento skript vygeneruje výstup rozdelením týchto hodnôt na viacero slov a vytlačením ako samostatnej hodnoty. Toto však nie je správny výstup. Riešenie tohto typu problému je uvedené v nasledujúcom príklade.

#!/bin/bash

# Deklarujte pole reťazca s typom
vyhlásiť -do StringArray=(„Linux Mint“ 'Fedora' „Red Hat Linux“ „Ubuntu“ 'Debian' )

# Opakujte pole reťazcov pomocou cyklu for
prehodv $ {StringArray [@]};urobiť
zahodil $ hodín
hotový

Výkon:

$bashfor_list3.sh

Príklad 4: Vytlačí hodnotu reťazca viacerých slov ako jednu hodnotu

Vytvorte bash súbor s názvom „ for_list4.sh “A pridajte nasledujúci skript. V tomto prípade každý prvok premennej poľa, StringArray obsahuje hodnoty dvoch slov. Na vytlačenie každej hodnoty bez rozdelenia a vyriešenie problému z predchádzajúceho príkladu stačí uzavrieť premennú poľa pomocou dvojitá citácia v rámci cyklu for.

#!/bin/bash

# Deklarujte pole reťazcov s typom
vyhlásiť -do StringArray=('Windows XP' „Windows 10“ „Windows ME“ „Windows 8.1“
„Windows Server 2016“ )

# Prečítajte si hodnoty poľa s medzerou
prehodv '$ {StringArray [@]}';urobiť
zahodil $ hodín
hotový

Výkon:

$bashfor_list4.sh

Príklad 5: Iterácia hodnôt reťazca poľa pomocou „*“

Vytvorte bash súbor s názvom „ for_list5.sh “S nasledujúcim kódom. Tu sa na prečítanie všetkých reťazcových hodnôt poľa používa symbol „*“. Prvá slučka for sa používa na zobrazenie hodnôt poľa vo viacerých riadkoch a druhá slučka for sa používa na zobrazenie hodnôt poľa v jednom riadku.

#!/bin/bash

#Deklarujte pole reťazcov
LanguageArray=('PHP' 'Java' 'C #' 'C ++' „VB.Net“ „Python“ 'Perl')

# Vytlačte hodnoty poľa v riadkoch
zahodil „Vytlačiť každý prvok v novom riadku“
preval1v $ {LanguageArray [*]};urobiť
zahodil 1 dolár
hotový

zahodil ''

# Vytlačte hodnoty poľa v jednom riadku
zahodil „Vytlačte všetky prvky do jedného riadka“
preval2v '$ {LanguageArray [*]}';urobiť
zahodil $ val2
hotový
zahodil ''

Výkon:

$bashfor_list5.sh

Príklad 6: Iterácia hodnôt reťazca oddelených čiarkami

Vytvorte nový bash súbor s názvom „ for_list6.sh ' s nasledujúcim kódom. Tu, čiarka (,) sa používa na rozdelenie hodnôt reťazca. IFS premenná slúži na nastavenie oddeľovača polí.

#!/bin/bash
DataList=„HTML5, CCS3, BootStrap, JQuery“
Oddeľovač poľa=$ IFS

# nastaviť čiarku ako interný oddeľovač polí pre zoznam reťazcov
IFS=,
prehodv $ DataList;
urobiť
zahodil $ hodín
hotový

IFS=$ Field_Separator

Výkon:

$bashfor_list6.sh

Príklad 7: Spoločné čítanie viacerých reťazcových polí

Vytvorte bash súbor s názvom „ for_list7.sh “A pridajte nasledujúci skript. V tomto prípade sú definované dve reťazcové polia a skombinované do iného poľa. Vonkajšia slučka for sa používa na čítanie kombinovaného poľa a vnútorná slučka for sa používa na čítanie každého vnútorného poľa.

#! /bin/sh
str_array1=(„Magento 2.2.4“ „WooCommerce“)
str_array2=('CodeIgnitor' „Laravel“)
kombinovať=(str_array1 str_array2)
preorganizovanýv $ {kombinovať [@]}
urobiť
eval 'for val in' $ {'$ arrItem'[@]}'; zopakujte '$ val'; hotovo '
hotový

Výkon:

$bashfor_list7.sh

Príklad 8: Použitie vzoru na prečítanie zoznamu reťazcov

Vytvorte nový súbor bash s názvom for_list8.sh s nasledujúcim kódom. Tu, ' /, /' vzor sa používa na rozdelenie hodnôt reťazca na základe čiarky.

#! /bin/sh

# Definujte zoznam reťazcových premenných
stringList= WordPress, Joomla, Magento

# Ako oddeľovač používajte čiarku a aplikujte ako vzor
prehodv $ {stringList //,/}
urobiť
zahodil $ hodín
hotový

Výkon:

$bashfor_list8.sh

Dúfam, že príklady tohto tutoriálu vám pomôžu porozumieť používaniu pre slučku iteráciu zoznamu reťazcov a video na túto tému nájdete nižšie: