Bash Loop Sa pamamagitan ng isang Listahan ng Mga String

Bash Loop Through List Strings



Ang isang listahan ng mga string o array o pagkakasunud-sunod ng mga elemento ay maaaring mai-ulit sa pamamagitan ng paggamit para sa loop sa bash. Paano mo mai-ulit ang listahan ng mga string sa Bash sa pamamagitan ng para sa loop ay ipinapakita sa tutorial na ito sa pamamagitan ng paggamit ng iba't ibang mga halimbawa ng bash script. Kung ikaw ay baguhan ay bash programming pagkatapos ay maaari mong basahin ang tutorial sa BASH Para sa Mga Halimbawa ng Loop bago simulan ang tutorial na ito

Lumikha ng isang bash file na pinangalanang ‘ para sa_list1.sh ’At idagdag ang sumusunod na script. Ang isang halaga ng string na may mga puwang ay ginagamit sa loob para sa loop. Bilang default, ang halaga ng string ay pinaghihiwalay ng puwang. Para sa loop ay hatiin ang string sa mga salita at mai-print ang bawat salita sa pamamagitan ng pagdaragdag ng isang bagong linya.







#! / baseng / bash
# Basahin ang isang string na may mga puwang gamit para sa loop
para sahalagasaGusto ko ng programa
gawin
itinapon $ halaga
tapos na

Output:



$bashpara sa_list1.sh



Halimbawa-2: Iterating isang variable ng string gamit ang para sa loop

Lumikha ng isang bash file na pinangalanang ‘ para sa_list2.sh ’At idagdag ang sumusunod na script. Magtalaga ng isang teksto sa variable, StringVal at basahin ang halaga ng variable na ito gamit ang for loop. Ang halimbawang ito ay gagana rin tulad ng nakaraang halimbawa at hatiin ang halaga ng variable sa mga salita batay sa puwang.





#! / baseng / bash
# Tukuyin ang isang variable ng string na may halaga
StringVal='Maligayang pagdating sa linuxhint'

# Iterate ang variable ng string gamit ang loop
para saorassa $ StringVal;gawin
itinapon $ oras
tapos na

Output:

$bashpara sa_list2.sh



Halimbawa-3: Magsama ng isang hanay ng mga halaga ng string

Lumikha ng isang bash file na pinangalanang ‘ para sa_list3.sh ’At idagdag ang sumusunod na script. Ang isang hanay ng mga halaga ng string ay idineklara na may uri sa script na ito. Dalawang halaga sa array na naglalaman ng puwang Linux Mint at Red Hat Linux . Ang script na ito ay bubuo ng output sa pamamagitan ng paghahati ng mga halagang ito sa maraming mga salita at pag-print bilang magkakahiwalay na halaga. Ngunit hindi ito ang tamang output. Ang solusyon ng ganitong uri ng problema ay ipinapakita sa susunod na halimbawa.

#! / baseng / bash

# Ipahayag ang isang hanay ng mga string na may uri
magpahayag -sa StringArray=('Linux Mint' 'Fedora' 'Red Hat Linux' 'Ubuntu' 'Debian' )

# Iterate ang string array gamit ang para sa loop
para saorassa $ {StringArray [@]};gawin
itinapon $ oras
tapos na

Output:

$bashpara sa_list3.sh

Halimbawa-4: I-print ang maramihang mga salita na halaga ng string bilang isang solong halaga

Lumikha ng isang bash file na pinangalanang ‘ para sa_list4.sh ’At idagdag ang sumusunod na script. Sa halimbawang ito, bawat elemento ng variable ng array, StringArray naglalaman ng mga halagang dalawang salita. Upang mai-print ang bawat halaga nang hindi nahahati at malulutas ang problema ng nakaraang halimbawa, kailangan mo lamang i-enclose ang variable ng array dobleng sipi sa loob para sa loop.

#! / baseng / bash

# Ipahayag ang isang string array na may uri
magpahayag -sa StringArray=('Windows XP' 'Windows 10' 'Windows ME' 'Windows 8.1'
'Windows Server 2016' )

# Basahin ang mga halaga ng array na may puwang
para saorassa '$ {StringArray [@]}';gawin
itinapon $ oras
tapos na

Output:

$bashpara sa_list4.sh

Halimbawa-5: Iterating string halaga ng isang array gamit ang '*'

Lumikha ng isang bash file na pinangalanang ‘ para sa_list5.sh ’Kasama ang sumusunod na code. Dito, ginamit ang simbolo na '*' upang mabasa ang lahat ng mga halaga ng string ng array. Ang una para sa loop ay ginagamit upang ipakita ang mga halaga ng array sa maraming mga linya at ang pangalawa para sa loop ay ginagamit upang ipakita ang mga halaga ng array sa isang solong linya.

#! / baseng / bash

#Deklara ang isang string array
WikaArray=('PHP' 'Java' 'C #' 'C ++' 'VB.Net' 'Python' 'Perl')

# I-print ang mga halaga ng array sa mga linya
itinapon 'I-print ang bawat elemento sa bagong linya'
para saval1sa $ {LanguageArray [*]};gawin
itinapon $ val1
tapos na

itinapon '

# I-print ang mga halaga ng array sa isang linya
itinapon 'I-print ang lahat ng mga elemento sa isang solong linya'
para saval2sa '$ {LanguageArray [*]}';gawin
itinapon $ val2
tapos na
itinapon '

Output:

$bashpara sa_list5.sh

Halimbawa-6: Pinaghihiwalay ng Iterating na kuwit na pinaghihiwalay na mga halaga ng string

Lumikha ng isang bagong bash file na pinangalanang ‘ para_list6.sh ’ kasama ang sumusunod na code. Dito, kuwit (,) ay ginagamit upang hatiin ang mga halaga ng string. IFS Ginagamit ang variable upang maitakda ang separator ng patlang.

#! / baseng / bash
Listahan ng Data='HTML5, CCS3, BootStrap, JQuery'
Field_Separator=$ IFS

# itakda ang kuwit bilang panloob na separator ng patlang para sa listahan ng string
IFS=,
para saorassa $ DataList;
gawin
itinapon $ oras
tapos na

IFS=$ Field_Separator

Output:

$bashpara sa_list6.sh

Halimbawa-7: Pagbabasa ng maramihang mga string array nang magkasama

Lumikha ng isang bash file na pinangalanang ‘ para sa_list7.sh ’At idagdag ang sumusunod na script. Sa halimbawang ito, ang dalawang mga arrays ng string ay tinukoy at pinagsama sa isa pang array. Ang panlabas para sa loop ay ginagamit upang basahin ang pinagsamang array at ang panloob para sa loop ay ginagamit upang basahin ang bawat panloob na array.

#! / basahan / sh
str_array1=('Magento 2.2.4' 'WooCommerce')
str_array2=('CodeIgnitor' 'Laravel')
pagsamahin=(str_array1 str_array2)
para sapinamamahalaansa $ {pagsamahin [@]}
gawin
eval 'para sa val sa' $ {'$ arrItem'[@]}'; i-echo ang '$ val'; tapos na '
tapos na

Output:

$bashpara sa_list7.sh

Halimbawa-8: Paggamit ng pattern upang basahin ang listahan ng mga string

Lumikha ng isang bagong bash file na pinangalanan para sa_list8.sh kasama ang sumusunod na code. Dito, ‘/, /’ ginagamit ang pattern upang hatiin ang mga halaga ng string batay sa kuwit.

#! / basahan / sh

# Tukuyin ang isang listahan ng variable ng string
stringList= WordPress, Joomla, Magento

# Gumamit ng kuwit bilang separator at ilapat bilang pattern
para saorassa $ {stringList //, /}
gawin
itinapon $ oras
tapos na

Output:

$bashpara sa_list8.sh

Sana, ang mga halimbawa ng tutorial na ito ay makakatulong sa iyo upang maunawaan ang paggamit ng para sa loop para sa pag-ulit ng listahan ng mga string, para sa isang video sa paksang ito, tingnan sa ibaba: