Bash Loop przez listę strun

Bash Loop Through List Strings



Listę ciągów lub tablicę lub sekwencję elementów można iterować za pomocą dla pętla w bash. W tym samouczku pokazano, w jaki sposób można iterować listę ciągów w bashu za pomocą pętli for, przy użyciu różnych przykładów skryptów bash. Jeśli jesteś nowicjuszem w programowaniu w bashu, możesz przeczytać samouczek na Przykłady BASH dla pętli przed rozpoczęciem tego samouczka.

Utwórz plik bash o nazwie „ for_list1.sh ’ i dodaj następujący skrypt. W pętli for używana jest wartość ciągu ze spacjami. Domyślnie wartość ciągu jest oddzielona spacją. Pętla For podzieli ciąg na słowa i wypisze każde słowo przez dodanie nowej linii.







#!/kosz/bash
# Odczytaj ciąg ze spacjami za pomocą pętli for
dlawartośćwlubię programować
robić
wyrzucił $wartość
Gotowe

Wyjście:



$grzmotnąćfor_list1.sh



Przykład-2: Iteracja zmiennej łańcuchowej za pomocą pętli for

Utwórz plik bash o nazwie „ for_list2.sh ’ i dodaj następujący skrypt. Przypisz tekst do zmiennej, StringVal i odczytaj wartość tej zmiennej za pomocą pętli for. Ten przykład będzie również działał jak poprzedni i podzieli wartość zmiennej na słowa na podstawie spacji.





#!/kosz/bash
# Zdefiniuj zmienną łańcuchową z wartością
StringVal=„Witamy w linuxhint”

# Iteruj zmienną łańcuchową za pomocą pętli for
dlagodzinaw $StringVal;robić
wyrzucił $ godzin
Gotowe

Wyjście:

$grzmotnąćfor_list2.sh



Przykład-3: Iteracja tablicy wartości łańcuchowych

Utwórz plik bash o nazwie „ for_list3.sh ’ i dodaj następujący skrypt. W tym skrypcie zadeklarowana jest tablica wartości łańcuchowych z typem. Dwie wartości w tablicy zawierające spację to Mennica Linuksa oraz Red Hat Linux . Ten skrypt wygeneruje dane wyjściowe, dzieląc te wartości na wiele słów i drukując je jako oddzielną wartość. Ale to nie jest właściwe wyjście. Rozwiązanie tego typu problemu pokazuje następny przykład.

#!/kosz/bash

# Zadeklaruj tablicę ciągów z typem
ogłosić -do StringArray=('Linux Mennica' „Fedora” „Red Hat Linux” „Ubuntu” 'Debian' )

# Iteruj tablicę ciągów za pomocą pętli for
dlagodzinaw ${StringArray[@]};robić
wyrzucił $ godzin
Gotowe

Wyjście:

$grzmotnąćfor_list3.sh

Przykład-4: Wydrukuj wartość ciągu wielu słów jako pojedynczą wartość

Utwórz plik bash o nazwie „ for_list4.sh ’ i dodaj następujący skrypt. W tym przykładzie każdy element zmiennej tablicowej, StringArray zawiera wartości dwóch słów. Aby wydrukować każdą wartość bez dzielenia i rozwiązać problem z poprzedniego przykładu, wystarczy dołączyć zmienną tablicową za pomocą podwójny cytat w pętli for.

#!/kosz/bash

# Zadeklaruj tablicę ciągów z typem
ogłosić -do StringArray=('Windows XP' Windows 10 „Okna ME” 'Windows 8.1'
„Windows Server 2016” )

# Odczytaj wartości tablicy za pomocą spacji
dlagodzinaw '${StringArray[@]}';robić
wyrzucił $ godzin
Gotowe

Wyjście:

$grzmotnąćfor_list4.sh

Przykład-5: Iteracja wartości ciągów tablicy za pomocą „*”

Utwórz plik bash o nazwie „ for_list5.sh ” z następującym kodem. Tutaj symbol „*” służy do odczytywania wszystkich wartości ciągów tablicy. Pierwsza pętla for służy do wyświetlania wartości tablicy w wielu wierszach, a druga pętla for służy do wyświetlania wartości tablicy w jednym wierszu.

#!/kosz/bash

#Zadeklaruj tablicę ciągów
LanguageArray=(„PHP” 'Jawa' 'C #' 'C++' 'VB.Sieć' 'Pyton' 'Perl')

# Wydrukuj wartości tablicy w liniach
wyrzucił 'Drukuj każdy element w nowej linii'
dlawart1w ${Tablica języków[*]};robić
wyrzucił $ wartość1
Gotowe

wyrzucił ''

# Wydrukuj wartości tablicy w jednym wierszu
wyrzucił 'Drukuj wszystkie elementy w jednym wierszu'
dlawart2w '${Tablica języków[*]}';robić
wyrzucił $val2
Gotowe
wyrzucił ''

Wyjście:

$grzmotnąćfor_list5.sh

Przykład-6: Iterowanie wartości ciągu znaków oddzielonych przecinkami

Utwórz nowy plik bash o nazwie „ for_list6.sh” z następującym kodem. Tutaj, przecinek (,) służy do dzielenia wartości ciągu. IFS zmienna służy do ustawienia separatora pól.

#!/kosz/bash
Lista danych=' HTML5, CCS3, BootStrap, JQuery '
Separator pola=$IFS

# ustaw przecinek jako wewnętrzny separator pól dla listy ciągów
IFS=,
dlagodzinaw $Lista danych;
robić
wyrzucił $ godzin
Gotowe

IFS=$Field_Separator

Wyjście:

$grzmotnąćfor_list6.sh

Przykład-7: Wspólne odczytywanie wielu tablic ciągów

Utwórz plik bash o nazwie „ for_list7.sh ’ i dodaj następujący skrypt. W tym przykładzie dwie tablice ciągów są zdefiniowane i połączone w inną tablicę. Zewnętrzna pętla for służy do odczytu połączonej tablicy, a wewnętrzna pętla for służy do odczytu każdej tablicy wewnętrznej.

#! /bin/sz
str_tablica1=(„Magento 2.2.4” „WooCommerce”)
str_array2=(„KodIgnitor” 'Laravel')
łączyć=(str_array1 str_array2)
dlazarządzanyw ${połączyć[@]}
robić
oceniać 'for val w '${'$ arrItem'[@]}';wykonaj echo '$val';gotowe'
Gotowe

Wyjście:

$grzmotnąćfor_list7.sh

Przykład 8: Używanie wzorca do odczytywania listy ciągów

Utwórz nowy plik bash o nazwie for_list8.sh z następującym kodem. Tutaj, „/, /” wzorzec służy do dzielenia wartości ciągu na podstawie przecinka.

#! /bin/sz

# Zdefiniuj listę zmiennych łańcuchowych
Lista ciągów=WordPress, Joomla, Magento

# Użyj przecinka jako separatora i zastosuj jako wzór
dlagodzinaw ${stringList//,/ }
robić
wyrzucił $ godzin
Gotowe

Wyjście:

$grzmotnąćfor_list8.sh

Mam nadzieję, że przykłady z tego samouczka pomogą ci zrozumieć użycie dla pętli dla iteracji listy ciągów, aby obejrzeć film na ten temat, zobacz poniżej: