Dizeler Listesinde Bash Döngüsü

Bash Loop Through List Strings



Bir dize listesi veya dizi veya öğe dizisi kullanılarak yinelenebilir. için bash içinde döngü. Bash for döngüsüne göre dizelerin listesini nasıl yineleyebileceğiniz bu öğreticide çeşitli bash komut dosyası örnekleri kullanılarak gösterilmektedir. Acemi iseniz, bash programlama konusunda öğreticiyi okuyabilirsiniz. Döngü Örnekleri İçin BASH Bu eğitime başlamadan önce.

'adlı bir bash dosyası oluşturun for_list1.sh ' ve aşağıdaki betiği ekleyin. For döngüsü içinde boşluklu bir dize değeri kullanılır. Varsayılan olarak, dize değeri boşlukla ayrılır. For döngüsü, dizeyi kelimelere böler ve her kelimeyi yeni bir satır ekleyerek yazdırır.







#!/bin/bash
# for döngüsü kullanarak boşluk içeren bir dize okuyun
içindeğeriçindeprogramlamayı severim
yapmak
dışarı attı $değer
tamamlamak

Çıktı:



$bashfor_list1.sh



Örnek-2: for döngüsü kullanarak bir dize değişkenini yineleme

'adlı bir bash dosyası oluşturun for_list2.sh ' ve aşağıdaki betiği ekleyin. Değişkene bir metin atayın, StringVal ve for döngüsünü kullanarak bu değişkenin değerini okuyun. Bu örnek de önceki örnek gibi çalışacak ve değişkenin değerini boşluğa göre kelimelere bölecektir.





#!/bin/bash
# Değer içeren bir dize değişkeni tanımlayın
StringVal='linuxhint'e hoş geldiniz'

# for döngüsü kullanarak dize değişkenini yineleyin
içinsaatiçinde $StringVal;yapmak
dışarı attı $ saat
tamamlamak

Çıktı:

$bashfor_list2.sh



Örnek-3: Bir dizi dize değeri yineleyin

'adlı bir bash dosyası oluşturun for_list3.sh ' ve aşağıdaki betiği ekleyin. Bu komut dosyasında tür ile bir dizi dize değeri bildirilir. Dizideki boşluk içeren iki değer Linux Darphanesi ve Kırmızı Hat Linux'u . Bu komut dosyası, bu değerleri birden çok kelimeye bölerek ve ayrı bir değer olarak yazdırarak çıktı üretecektir. Ama bu uygun çıktı değil. Bu tür bir problemin çözümü bir sonraki örnekte gösterilmiştir.

#!/bin/bash

# Türü ile bir dizi dizi bildir
bildirmek -ile StringArray=('Linux Mint' 'Fedora' 'Kırmızı Hat Linux' 'Ubuntu' 'Debian' )

# for döngüsü kullanarak dize dizisini yineleyin
içinsaatiçinde ${StringArray[@]};yapmak
dışarı attı $ saat
tamamlamak

Çıktı:

$bashfor_list3.sh

Örnek-4: Birden çok sözcük dizesi değerini tek bir değer olarak yazdırın

'adlı bir bash dosyası oluşturun for_list4.sh ' ve aşağıdaki betiği ekleyin. Bu örnekte, dizi değişkeninin her öğesi, StringArray iki kelimenin değerlerini içerir. Her değeri bölmeden yazdırmak ve önceki örnekteki sorunu çözmek için dizi değişkenini çift ​​tırnak for döngüsü içinde.

#!/bin/bash

# Türü ile bir dize dizisi bildirin
bildirmek -ile StringArray=('Windows XP' 'Windows 10' 'Windows BEN' 'Windows 8.1'
'Windows Sunucusu 2016' )

# Dizi değerlerini boşlukla oku
içinsaatiçinde '${StringArray[@]}';yapmak
dışarı attı $ saat
tamamlamak

Çıktı:

$bashfor_list4.sh

Örnek-5: '*' kullanarak bir dizinin dize değerlerini yineleme

'adlı bir bash dosyası oluşturun for_list5.sh ' aşağıdaki kod ile. Burada dizinin tüm string değerlerini okumak için '*' sembolü kullanılır. İlk for döngüsü, dizi değerlerini birden çok satırda görüntülemek için, ikincisi for döngüsü, dizi değerlerini tek bir satırda görüntülemek için kullanılır.

#!/bin/bash

#Bir dize dizisi bildir
Dil Dizisi=('PHP' 'Java' 'C #' 'C++' 'VB.Net' 'Piton' 'Perl')

# Dizi değerlerini satırlara yazdır
dışarı attı 'Her öğeyi yeni satırda yazdır'
içinval1içinde ${LanguageArray[*]};yapmak
dışarı attı $ değer1
tamamlamak

dışarı attı ''

# Dizi değerlerini tek satırda yazdır
dışarı attı 'Tüm öğeleri tek bir satırda yazdır'
içinval2içinde '${LanguageArray[*]}';yapmak
dışarı attı $değer2
tamamlamak
dışarı attı ''

Çıktı:

$bashfor_list5.sh

Örnek-6: Virgülle ayrılmış dize değerlerini yineleme

' adlı yeni bir bash dosyası oluşturun for_list6.sh' aşağıdaki kod ile. Buraya, virgül (,) dize değerlerini bölmek için kullanılır. IFS değişken, alan ayırıcısını ayarlamak için kullanılır.

#!/bin/bash
Veri Listesi='HTML5, CCS3, BootStrap, JQuery'
Alan_Ayırıcı=$IFS

# dize listesi için dahili alan ayırıcı olarak virgül ayarlayın
IFS=,
içinsaatiçinde $Veri Listesi;
yapmak
dışarı attı $ saat
tamamlamak

IFS=$Field_Separator

Çıktı:

$bashfor_list6.sh

Örnek-7: Birden çok dize dizisini birlikte okuma

'adlı bir bash dosyası oluşturun for_list7.sh ' ve aşağıdaki betiği ekleyin. Bu örnekte, iki dize dizisi tanımlanmış ve başka bir dizide birleştirilmiştir. Dıştaki for döngüsü, birleştirilmiş diziyi okumak için kullanılır ve içteki for döngüsü, her bir iç diziyi okumak için kullanılır.

#! /bin/sh
str_array1=('Magento 2.2.4' 'WooCommerce')
str_array2=('CodeIgnitor' 'Laravel')
birleştirmek=(str_array1 str_array2)
içinyönetileniçinde ${birleştir[@]}
yapmak
değerlendirmek '${' içindeki val için$ diziÖğesi'[@]}';eko yap '$val';done'
tamamlamak

Çıktı:

$bashfor_list7.sh

Örnek-8: Dize listesini okumak için desen kullanma

adlı yeni bir bash dosyası oluşturun for_list8.sh aşağıdaki kod ile. Buraya, '/, /' desen, dize değerlerini virgül temelinde bölmek için kullanılır.

#! /bin/sh

# Dize değişkeninin bir listesini tanımlayın
stringList=WordPress,Joomla,Magento

# Ayırıcı olarak virgül kullanın ve kalıp olarak uygulayın
içinsaatiçinde ${stringList//,/ }
yapmak
dışarı attı $ saat
tamamlamak

Çıktı:

$bashfor_list8.sh

Umarım, bu öğreticinin örnekleri, aşağıdakilerin kullanımını anlamanıza yardımcı olacaktır. döngü için dizelerin listesini yinelemek için, bu konuyla ilgili bir video için aşağıya bakın: