Bash smyčka prostřednictvím seznamu řetězců

Bash Loop Through List Strings



Seznam řetězců nebo pole nebo posloupnost prvků lze iterovat pomocí pro smyčka v bash. Jak můžete iterovat seznam řetězců ve smyčce Bash by for, je ukázáno v tomto kurzu pomocí různých příkladů skriptu bash. Pokud jste nováček v programování bash, můžete si přečíst návod BASH pro příklady smyček před spuštěním tohoto tutoriálu.

Vytvořte bash soubor s názvem „ for_list1.sh “A přidejte následující skript. V cyklu for je použita řetězcová hodnota s mezerami. Ve výchozím nastavení je hodnota řetězce oddělena mezerou. For loop rozdělí řetězec na slova a každé slovo vytiskne přidáním nového řádku.







#!/bin/bash
# Pomocí smyčky for načtěte řetězec s mezerami
prohodnotavRád programuji
dělat
vyhodil $ hodnota
Hotovo

Výstup:



$bashfor_list1.sh



Příklad-2: Iterace řetězcové proměnné pomocí smyčky for

Vytvořte bash soubor s názvem „ for_list2.sh “A přidejte následující skript. Přiřaďte text do proměnné, StringVal a přečtěte hodnotu této proměnné pomocí smyčky for. Tento příklad bude také fungovat jako předchozí příklad a rozdělí hodnotu proměnné na slova na základě mezery.





#!/bin/bash
# Definujte řetězcovou proměnnou hodnotou
StringVal='Welcome to linuxhint'

# Opakujte proměnnou řetězce pomocí smyčky for
prohodv $ StringVal;dělat
vyhodil $ hodin
Hotovo

Výstup:

$bashfor_list2.sh



Příklad 3: Iterujte řadu řetězcových hodnot

Vytvořte bash soubor s názvem „ for_list3.sh “A přidejte následující skript. V tomto skriptu je deklarováno pole řetězcových hodnot s typem. Dvě hodnoty v poli, které obsahují mezeru, jsou Linuxová mincovna a Red Hat Linux . Tento skript vygeneruje výstup rozdělením těchto hodnot na více slov a tiskem jako samostatná hodnota. Ale toto není správný výstup. Řešení tohoto typu problému je ukázáno v následujícím příkladu.

#!/bin/bash

# Deklarujte pole řetězce pomocí typu
prohlásit -na StringArray=('Linux Mint' 'Fedora' 'Red Hat Linux' 'Ubuntu' 'Debian' )

# Opakujte pole řetězců pomocí cyklu for
prohodv $ {StringArray [@]};dělat
vyhodil $ hodin
Hotovo

Výstup:

$bashfor_list3.sh

Příklad 4: Tisk hodnoty řetězce více slov jako jedné hodnoty

Vytvořte bash soubor s názvem „ for_list4.sh “A přidejte následující skript. V tomto příkladu každý prvek proměnné pole, StringArray obsahuje hodnoty dvou slov. Chcete -li vytisknout každou hodnotu bez rozdělení a vyřešit problém předchozího příkladu, stačí uzavřít proměnnou pole pomocí dvojitá citace uvnitř pro smyčku.

#!/bin/bash

# Deklarujte pole řetězců pomocí typu
prohlásit -na StringArray=('Windows XP' 'Windows 10' 'Windows ME' 'Windows 8.1'
'Windows Server 2016' )

# Přečtěte si hodnoty pole s mezerou
prohodv '$ {StringArray [@]}';dělat
vyhodil $ hodin
Hotovo

Výstup:

$bashfor_list4.sh

Příklad-5: Iterace řetězcových hodnot pole pomocí „*“

Vytvořte bash soubor s názvem „ for_list5.sh “S následujícím kódem. Zde se ke čtení všech řetězcových hodnot pole používá symbol „*“. První pro smyčku se používá k zobrazení hodnot pole ve více řádcích a druhá pro smyčku se používá k zobrazení hodnot pole v jednom řádku.

#!/bin/bash

#Deklarujte pole řetězců
LanguageArray=('PHP' 'Jáva' 'C #' 'C ++' 'VB.Net' 'Krajta' 'Perl')

# Tiskněte hodnoty pole v řádcích
vyhodil 'Vytisknout každý prvek v novém řádku'
proval1v $ {LanguageArray [*]};dělat
vyhodil $ val1
Hotovo

vyhodil ''

# Vytiskněte hodnoty pole v jednom řádku
vyhodil 'Tisk všech prvků v jednom řádku'
proval2v '$ {LanguageArray [*]}';dělat
vyhodil $ val2
Hotovo
vyhodil ''

Výstup:

$bashfor_list5.sh

Příklad-6: Iterace hodnot řetězců oddělených čárkami

Vytvořte nový bash soubor s názvem „ for_list6.sh ‘ s následujícím kódem. Tady, čárka (,) slouží k rozdělení hodnot řetězce. IFS proměnná slouží k nastavení oddělovače polí.

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

# nastavit čárku jako interní oddělovač polí pro seznam řetězců
IFS=,
prohodv $ DataList;
dělat
vyhodil $ hodin
Hotovo

IFS=$ Field_Separator

Výstup:

$bashfor_list6.sh

Příklad 7: Čtení více řetězcových polí dohromady

Vytvořte bash soubor s názvem „ for_list7.sh “A přidejte následující skript. V tomto příkladu jsou definována dvě řetězcová pole a sloučena do jiného pole. Vnější smyčka for se používá ke čtení kombinovaného pole a vnitřní for smyčka se používá ke čtení každého vnitřního pole.

#! /bin/sh
str_array1=('Magento 2.2.4' 'WooCommerce')
str_array2=('CodeIgnitor' 'Laravel')
kombajn=(str_array1 str_array2)
propodařilo sev $ {kombinovat [@]}
dělat
eval 'for val in' $ {'$ arrItem'[@]}'; opakujte '$ val'; hotovo '
Hotovo

Výstup:

$bashfor_list7.sh

Příklad-8: Použití vzoru ke čtení seznamu řetězců

Vytvořte nový bash soubor s názvem for_list8.sh s následujícím kódem. Tady, ' /, /' vzor se používá k rozdělení hodnot řetězce na základě čárky.

#! /bin/sh

# Definujte seznam řetězcových proměnných
stringList= WordPress, Joomla, Magento

# Jako oddělovač použijte čárku a použijte jako vzor
prohodv $ {stringList //,/}
dělat
vyhodil $ hodin
Hotovo

Výstup:

$bashfor_list8.sh

Doufám, že příklady tohoto tutoriálu vám pomohou porozumět používání pro smyčku iteraci seznamu řetězců, video na toto téma najdete níže: