Bash Loop caur virkņu sarakstu

Bash Loop Through List Strings



Virkņu vai masīvu vai elementu secības sarakstu var atkārtot, izmantojot priekš cilpa bash. Šajā pamācībā, izmantojot dažādus bash skriptu piemērus, ir parādīts, kā jūs varat atkārtot virkņu sarakstu Bash by for loop. Ja esat iesācējs bash programmēšanā, varat izlasīt apmācību BASH cilpu piemēriem pirms šīs apmācības uzsākšanas.

Izveidojiet bash failu ar nosaukumu ' for_list1.sh 'Un pievienojiet šādu skriptu. Virknes vērtība ar atstarpēm tiek izmantota cilpas ietvaros. Pēc noklusējuma virknes vērtība ir atdalīta ar atstarpi. Cilpa sadalīs virkni vārdos un izdrukās katru vārdu, pievienojot jaunu rindiņu.







#!/bin/bash
# Izlasiet virkni ar atstarpēm, izmantojot cilpu
priekšvērtībuiekšāMan patīk programmēt
darīt
izmest ārā $ vērtība
darīts

Izeja:



$bashfor_list1.sh



2. piemērs: virknes mainīgā atkārtošana, izmantojot cilpu

Izveidojiet bash failu ar nosaukumu ' for_list2.sh 'Un pievienojiet šādu skriptu. Piešķiriet mainīgajam tekstu, StringVal un nolasiet šī mainīgā vērtību, izmantojot cilpu. Šis piemērs darbosies tāpat kā iepriekšējais piemērs un sadalīs mainīgā vērtību vārdos, pamatojoties uz atstarpi.





#!/bin/bash
# Definējiet virknes mainīgo ar vērtību
StringVal='Laipni lūdzam linuxhint'

# Atkārtojiet virknes mainīgo, izmantojot cilpu
priekšstiekšā $ StringVal;darīt
izmest ārā $ stundas
darīts

Izeja:

$bashfor_list2.sh



3. piemērs: atkārtojiet virkņu vērtību masīvu

Izveidojiet bash failu ar nosaukumu ' for_list3.sh 'Un pievienojiet šādu skriptu. Šajā skriptā virkņu vērtību masīvs tiek deklarēts ar tipu. Masīvā ir divas vērtības, kurās ir atstarpe Linux Mint un Red Hat Linux . Šis skripts ģenerēs izvadi, sadalot šīs vērtības vairākos vārdos un drukājot kā atsevišķu vērtību. Bet tas nav pareizais iznākums. Šāda veida problēmu risinājums ir parādīts nākamajā piemērā.

#!/bin/bash

# Deklarējiet virkņu masīvu ar tipu
deklarēt -uz StringArray=('Linux Mint' 'Fedora' 'Red Hat Linux' 'Ubuntu' 'Debian' )

# Atkārtojiet virkņu masīvu, izmantojot cilpu
priekšstiekšā $ {StringArray [@]};darīt
izmest ārā $ stundas
darīts

Izeja:

$bashfor_list3.sh

4. piemērs. Drukājiet vairāku vārdu virknes vērtību kā vienu vērtību

Izveidojiet bash failu ar nosaukumu ' for_list4.sh 'Un pievienojiet šādu skriptu. Šajā piemērā katrs masīva mainīgā elements, StringArray satur divu vārdu vērtības. Lai izdrukātu katru vērtību bez sadalīšanas un atrisinātu iepriekšējā piemēra problēmu, jums vienkārši jāiekļauj masīva mainīgais ar citāts cilpas ietvaros.

#!/bin/bash

# Deklarējiet virkņu masīvu ar tipu
deklarēt -uz StringArray=('Windows XP' 'Windows 10' 'Windows ME' 'Windows 8.1'
'Windows Server 2016' )

# Lasiet masīva vērtības ar atstarpi
priekšstiekšā '$ {StringArray [@]}';darīt
izmest ārā $ stundas
darīts

Izeja:

$bashfor_list4.sh

5. piemērs: masīva virkņu vērtību atkārtošana, izmantojot “*”

Izveidojiet bash failu ar nosaukumu ' for_list5.sh 'Ar šādu kodu. Šeit simbols “*” tiek izmantots, lai nolasītu visas masīva virkņu vērtības. Pirmais cilpai tiek izmantots, lai masīva vērtības parādītu vairākās rindās, bet otrais cilpai tiek izmantots, lai masīva vērtības parādītu vienā rindā.

#!/bin/bash

#Deklarējiet virkņu masīvu
LanguageArray=('PHP' 'Java' 'C #' “C ++” 'VB.Net' 'Python' 'Perl')

# Drukājiet masīva vērtības rindās
izmest ārā 'Izdrukāt katru elementu jaunā rindā'
priekšval1iekšā $ {LanguageArray [*]};darīt
izmest ārā $ val1
darīts

izmest ārā ''

# Drukājiet masīva vērtības vienā rindā
izmest ārā 'Drukāt visus elementus vienā rindā'
priekšval2iekšā '$ {LanguageArray [*]}';darīt
izmest ārā $ val2
darīts
izmest ārā ''

Izeja:

$bashfor_list5.sh

6. piemērs: ar komatu atdalītu virkņu vērtību atkārtošana

Izveidojiet jaunu bash failu ar nosaukumu “ for_list6.sh ” ar šādu kodu. Šeit, komats (,) tiek izmantots, lai sadalītu virkņu vērtības. IFS mainīgo izmanto, lai iestatītu lauku atdalītāju.

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

# iestatiet komatu kā virkņu saraksta iekšējo lauku atdalītāju
IFS=,
priekšstiekšā $ DataList;
darīt
izmest ārā $ stundas
darīts

IFS=$ Field_Separator

Izeja:

$bashfor_list6.sh

7. piemērs: vairāku virkņu masīvu lasīšana kopā

Izveidojiet bash failu ar nosaukumu ' for_list7.sh 'Un pievienojiet šādu skriptu. Šajā piemērā divi virkņu masīvi ir definēti un apvienoti citā masīvā. Ārējā cilpa tiek izmantota, lai nolasītu kombinēto masīvu, un iekšējā cilpa tiek izmantota, lai nolasītu katru iekšējo masīvu.

#! /bin/sh
str_array1=('Magento 2.2.4' 'WooCommerce')
str_array2=('CodeIgnitor' 'Laravel')
kombinēt=(str_array1 str_array2)
priekšpārvaldītsiekšā $ {kombinēt [@]}
darīt
eval 'val.' $ {'$ arrItem'[@]}'; atkārtot '$ val'; gatavs '
darīts

Izeja:

$bashfor_list7.sh

8. piemērs. Izmantojot rakstu, lai izlasītu virkņu sarakstu

Izveidojiet jaunu bash failu ar nosaukumu for_list8.sh ar šādu kodu. Šeit, “ /, /” modelis tiek izmantots, lai sadalītu virkņu vērtības, pamatojoties uz komatu.

#! /bin/sh

# Definējiet virkņu mainīgo sarakstu
stringList= WordPress, Joomla, Magento

# Izmantojiet komatu kā atdalītāju un izmantojiet kā paraugu
priekšstiekšā $ {stringList //,/}
darīt
izmest ārā $ stundas
darīts

Izeja:

$bashfor_list8.sh

Ceru, ka šīs apmācības piemēri palīdzēs jums izprast cilpai lai atkārtotu virkņu sarakstu, video par šo tēmu skatiet tālāk: