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/bashDataList='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/shstr_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: