Bash Loop printr-o listă de șiruri

Bash Loop Through List Strings



O listă de șiruri sau matrice sau secvență de elemente poate fi iterată folosind pentru bucla în bash. Modul în care puteți itera lista șirurilor din Bash by for loop este prezentat în acest tutorial utilizând diferite exemple de script bash. Dacă sunteți începător programarea bash, puteți citi tutorialul pe BASH Pentru exemple de bucle înainte de a începe acest tutorial.

Creați un fișier bash numit „ for_list1.sh ’Și adăugați următorul script. O valoare șir cu spații este utilizată în buclă. În mod implicit, valoarea șirului este separată de spațiu. For loop va împărți șirul în cuvinte și va imprima fiecare cuvânt adăugând o linie nouă.







#! / bin / bash
# Citiți un șir cu spații folosind pentru buclă
pentruvaloareînÎmi place programarea
do
aruncat valoare $
Terminat

Ieșire:



$bashfor_list1.sh



Exemplu-2: Iterarea unei variabile șir folosind bucla for

Creați un fișier bash numit „ for_list2.sh ’Și adăugați următorul script. Atribuiți un text variabilei, StringVal și citiți valoarea acestei variabile folosind for loop. Acest exemplu va funcționa, de asemenea, ca în exemplul anterior și va împărți valoarea variabilei în cuvinte bazate pe spațiu.





#! / bin / bash
# Definiți o variabilă șir cu o valoare
StringVal=„Bun venit la linuxhint”

# Iterează variabila șir folosind for loop
pentruoreîn $ StringVal;do
aruncat $ ore
Terminat

Ieșire:

$bashfor_list2.sh



Exemplu-3: Iterează o matrice de valori de șir

Creați un fișier bash numit „ for_list3.sh ’Și adăugați următorul script. O matrice de valori șir este declarată cu tip în acest script. Două valori din matrice care conțin spațiu sunt Linux Mint și Red Hat Linux . Acest script va genera rezultatul prin împărțirea acestor valori în mai multe cuvinte și imprimarea ca valoare separată. Dar acesta nu este rezultatul adecvat. Soluția acestui tip de problemă este prezentată în exemplul următor.

#! / bin / bash

# Declarați o matrice de șiruri cu tipul
declara -la StringArray=(„Linux Mint” „Fedora” „Red Hat Linux” „Ubuntu” „Debian” )

# Iterează matricea de șiruri folosind bucla for
pentruoreîn $ {StringArray [@]};do
aruncat $ ore
Terminat

Ieșire:

$bashfor_list3.sh

Exemplul-4: Imprimați valoarea șirului de cuvinte multiple ca o singură valoare

Creați un fișier bash numit „ for_list4.sh ’Și adăugați următorul script. În acest exemplu, fiecare element al variabilei matrice, StringArray conține valori de două cuvinte. Pentru a imprima fiecare valoare fără a împărți și a rezolva problema exemplului anterior, trebuie doar să includeți variabila matrice cu citat dublu pentru buclă.

#! / bin / bash

# Declarați o matrice de șiruri cu tipul
declara -la StringArray=('Windows XP' „Windows 10” „Windows ME” „Windows 8.1”
„Windows Server 2016” )

# Citiți valorile matricei cu spațiu
pentruoreîn '$ {StringArray [@]}';do
aruncat $ ore
Terminat

Ieșire:

$bashfor_list4.sh

Exemplul-5: Iterarea valorilor șirurilor unui tablou folosind „*”

Creați un fișier bash numit „ for_list5.sh ’Cu următorul cod. Aici, simbolul „*” este utilizat pentru a citi toate valorile șirurilor din matrice. Prima buclă pentru este utilizată pentru a afișa valorile matricei în mai multe linii și a doua pentru bucla este utilizată pentru a afișa valorile matricei într-o singură linie.

#! / bin / bash

# Declarați o matrice de șiruri
LanguageArray=(„PHP” „Java” „C #” „C ++” „VB.Net” 'Piton' „Perl”)

# Imprimați valorile matricei în linii
aruncat „Imprimați fiecare element din linia nouă”
pentruval1în $ {LanguageArray [*]};do
aruncat $ val1
Terminat

aruncat ''

# Imprimați valorile matricei pe o singură linie
aruncat „Imprimați toate elementele într-o singură linie”
pentruval2în '$ {LanguageArray [*]}';do
aruncat $ val2
Terminat
aruncat ''

Ieșire:

$bashfor_list5.sh

Exemplu-6: Iterarea valorilor șirurilor separate prin virgulă

Creați un nou fișier bash numit „ for_list6.sh ” cu următorul cod. Aici, virgula (,) este folosit pentru a împărți valorile șirului. IFS variabila este utilizată pentru a seta separatorul de câmp.

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

# setează virgula ca separator de câmp intern pentru lista șirurilor
IFS=,
pentruoreîn $ DataList;
do
aruncat $ ore
Terminat

IFS=$ Field_Separator

Ieșire:

$bashfor_list6.sh

Exemplu-7: Citirea mai multor matrice de șiruri împreună

Creați un fișier bash numit „ for_list7.sh ’Și adăugați următorul script. În acest exemplu, două matrice de șiruri sunt definite și combinate într-o altă matrice. Bucla exterioară este utilizată pentru a citi matricea combinată, iar bucla interioară pentru a citi fiecare matrice interioară.

#! / bin / sh
str_array1=(„Magento 2.2.4” „WooCommerce”)
str_array2=('CodeIgnitor' „Laravel”)
combina=(str_array1 str_array2)
pentrua reușitîn $ {combine [@]}
do
eval 'pentru val în' $ {'$ arrItem„[@]}”; faceți ecou „$ val”; gata ”
Terminat

Ieșire:

$bashfor_list7.sh

Exemplu-8: Utilizarea modelului pentru a citi lista șirurilor

Creați un nou fișier bash numit for_list8.sh cu următorul cod. Aici, „/, /” modelul este folosit pentru a împărți valorile șirului pe bază de virgulă.

#! / bin / sh

# Definiți o listă de variabile șir
stringList= WordPress, Joomla, Magento

# Utilizați virgula ca separator și aplicați ca model
pentruoreîn $ {stringList //, /}
do
aruncat $ ore
Terminat

Ieșire:

$bashfor_list8.sh

Sper că exemplele acestui tutorial vă vor ajuta să înțelegeți utilizarea pentru bucla pentru iterarea listei de șiruri, pentru un videoclip despre acest subiect, consultați mai jos: