Bash Loop keresztül a karakterláncok listáján

Bash Loop Through List Strings



A karakterláncok vagy tömbök vagy elemek sorozata a használatával használható számára hurok bash -ban. Ebben az oktatóanyagban bemutatjuk, hogyan ismételheti meg a Bash by for loop karakterláncok listáját a Bash by for loop -ban. Ha kezdő a bash programozás, akkor elolvashatja az oktatóanyagot BASH hurokpéldákhoz mielőtt elkezdené ezt az oktatóanyagot.

Hozzon létre egy bash fájlt ' for_list1.sh ', És adja hozzá a következő szkriptet. A cikluson belül szóközökkel rendelkező karakterláncot használunk. Alapértelmezés szerint a karakterlánc értéke szóközzel van elválasztva. A hurok szavakra osztja a karakterláncot, és minden sort új sor hozzáadásával nyomtat.







#!/bin/bash
# Olvassa el a karakterláncot szóközökkel a ciklus használatával
számáraértékban benSzeretek programozni
tedd
kidobta $ értékű
Kész

Kimenet:



$bashfor_list1.sh



2. példa: Karakterlánc-változó iterálása a ciklus használatával

Hozzon létre egy bash fájlt ' for_list2.sh ', És adja hozzá a következő szkriptet. Szöveg hozzárendelése a változóhoz, StringVal és olvassa el ennek a változónak az értékét a ciklus használatával. Ez a példa ugyanúgy működik, mint az előző példa, és a változó értékét szavakra osztja a szóköz alapján.





#!/bin/bash
# Határozzon meg egy karakterlánc -változót értékkel
StringVal='Üdvözöljük a linuxhintben'

# Ismételje meg a karakterlánc változót a ciklus használatával
számáraóraban ben $ StringVal;tedd
kidobta $ óra
Kész

Kimenet:

$bashfor_list2.sh



3. példa: Ismételje meg a karakterlánc-értékek tömbjét

Hozzon létre egy bash fájlt ' for_list3.sh ', És adja hozzá a következő szkriptet. Ebben a szkriptben egy karakterlánc -értékek tömbjét kell megadni. A tömb két, szóközt tartalmazó értéke Linux Mint és Red Hat Linux . Ez a szkript úgy generálja a kimenetet, hogy ezeket az értékeket több szóra osztja fel, és külön értékként nyomtatja ki. De ez nem a megfelelő kimenet. Az ilyen típusú problémák megoldását a következő példa mutatja be.

#!/bin/bash

# Deklaráljon egy karakterlánc -tömböt típussal
kijelent -nak nek StringArray=('Linux Mint' 'Fedora' 'Red Hat Linux' 'Ubuntu' 'Debian' )

# Ismételje meg a karakterlánc tömböt a ciklus használatával
számáraóraban ben $ {StringArray [@]};tedd
kidobta $ óra
Kész

Kimenet:

$bashfor_list3.sh

4. példa: Több szó karakterláncának nyomtatása egyetlen értékként

Hozzon létre egy bash fájlt ' for_list4.sh ', És adja hozzá a következő szkriptet. Ebben a példában a tömbváltozó minden eleme, StringArray két szó értékét tartalmazza. Ha minden értéket felosztás nélkül szeretne kinyomtatni, és megoldja az előző példa problémáját, akkor csak be kell illesztenie a tömbváltozót kettős idézet cikluson belül.

#!/bin/bash

# Deklaráljon egy karakterlánc -tömböt típussal
kijelent -nak nek StringArray=('Windows XP' 'Windows 10' 'Windows ME' 'Windows 8.1'
'Windows Server 2016' )

# Olvassa el a tömb értékeit szóközzel
számáraóraban ben '$ {StringArray [@]}';tedd
kidobta $ óra
Kész

Kimenet:

$bashfor_list4.sh

5. példa: Egy tömb karakterlánc-értékeinek iterálása a „*” használatával

Hozzon létre egy bash fájlt ' for_list5.sh 'A következő kóddal. Itt a „*” szimbólum a tömb összes karakterláncának olvasására szolgál. Az első ciklus a tömbértékek megjelenítésére szolgál több sorban, a második pedig a ciklusra a tömbértékek egyetlen sorban történő megjelenítésére.

#!/bin/bash

#Deklaráljon egy karakterlánc -tömböt
LanguageArray=('PHP' 'Jáva' 'C #' 'C ++' 'VB.Net' 'Piton' 'Perl')

# Nyomtassa ki a tömb értékeit sorokban
kidobta 'Minden elem nyomtatása új sorban'
számáraval1ban ben $ {LanguageArray [*]};tedd
kidobta $ val1
Kész

kidobta ''

# Nyomtassa ki a tömb értékeit egy sorban
kidobta 'Az összes elem nyomtatása egyetlen sorban'
számáraval2ban ben '$ {LanguageArray [*]}';tedd
kidobta $ val2
Kész
kidobta ''

Kimenet:

$bashfor_list5.sh

6. példa: Vesszővel elválasztott karakterláncértékek iterálása

Hozzon létre egy új bash fájlt ' for_list6.sh ' a következő kóddal. Itt, vessző (,) karakterlánc értékek felosztására szolgál. IFS változó a mezőelválasztó beállítására szolgál.

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

# vesszőt állítson be a karakterlánc belső mezőjének elválasztójához
IFS=,
számáraóraban ben $ DataList;
tedd
kidobta $ óra
Kész

IFS=$ Field_Separator

Kimenet:

$bashfor_list6.sh

7. példa: Több karakterlánc tömb együttes olvasása

Hozzon létre egy bash fájlt ' for_list7.sh ', És adja hozzá a következő szkriptet. Ebben a példában két karakterlánc -tömb van definiálva és egy másik tömbbe egyesítve. A külső ciklus a kombinált tömb olvasására, a belső ciklus pedig az egyes belső tömbök olvasására szolgál.

#! /bin/sh
str_array1=('Magento 2.2.4' 'WooCommerce')
str_array2=('CodeIgnitor' 'Laravel')
kombájn=(str_array1 str_array2)
számárasikerültban ben $ {comb [@]}
tedd
eval 'for $ in'$ arrItem'[@]}'; do echo '$ val'; done '
Kész

Kimenet:

$bashfor_list7.sh

8. példa: A minta használata a karakterláncok listájának olvasásához

Hozzon létre egy új bash fájlt for_list8.sh a következő kóddal. Itt, ' /, /' minta a karakterlánc értékek vesszőre osztására szolgál.

#! /bin/sh

# Határozza meg a karakterlánc -változók listáját
stringList= WordPress, Joomla, Magento

# Használjon vesszőt elválasztóként, és mintát alkalmazzon
számáraóraban ben $ {stringList //,/}
tedd
kidobta $ óra
Kész

Kimenet:

$bashfor_list8.sh

Reméljük, ennek az oktatóanyagnak a példái segítenek megérteni a használatát hurokhoz a karakterláncok listájának ismétléséhez, a témához kapcsolódó videóért lásd alább: