Contoh-1: Iterasi string beberapa kata di dalam for loop

Buat file bash bernama ‘for_list1.sh‘ dan tambahkan skrip berikut. Nilai string dengan spasi digunakan di dalam for loop. Secara default, nilai string dipisahkan oleh spasi. Untuk loop akan membagi string menjadi kata-kata dan mencetak setiap kata dengan menambahkan baris baru.

#!/bin/bash
# Read a string with spaces using for loop
for value in I like programming
do
    echo $value
done

Keluaran:

$ bash for_list1.sh

Contoh-2: Iterasi variabel string menggunakan for loop

Buat file bash bernama ‘for_list2.sh‘ dan tambahkan skrip berikut. Tetapkan teks ke dalam variabel,StringVal dan baca nilai variabel ini menggunakan for loop. Contoh ini juga akan bekerja seperti contoh sebelumnya dan membagi nilai variabel menjadi kata-kata berdasarkan spasi.

#!/bin/bash
# Define a string variable with a value
StringVal="Welcome to linuxhint"

# Iterate the string variable using for loop
for val in $StringVal; do
    echo $val
done

Keluaran:

$ bash for_list2.sh

Example-3: Iterate an array of string values

Buat file bash bernama ‘for_list3.sh‘ dan tambahkan skrip berikut. Array nilai string dideklarasikan dengan mengetikkan skrip ini. Dua nilai dalam array yang berisi spasi adalah “Linux Mint” dan “Red Hat Linux”. Skrip ini akan menghasilkan output dengan membagi nilai-nilai ini menjadi beberapa kata dan mencetak sebagai nilai terpisah. Tapi ini bukan output yang tepat. Solusi dari jenis masalah ini ditunjukkan pada contoh berikut.

#!/bin/bash
 
# Declare an array of string with type
declare -a StringArray=("Linux Mint" "Fedora" "Red Hat Linux" "Ubuntu" "Debian" )
 
# Iterate the string array using for loop
for val in ${StringArray[@]}; do
   echo $val
done

Keluaran:

$ bash for_list3.sh

Example-4: Print multiple words string value as a single value

Buat file bash bernama ‘for_list4.sh‘ dan tambahkan skrip berikut. Dalam contoh ini, setiap elemen dari variabel array,StringArraymengandung nilai dua kata. Untuk mencetak setiap nilai tanpa membelah dan menyelesaikan masalah dari contoh sebelumnya, Anda hanya perlu menyertakan variabel array dengandouble quotation dalam untuk loop.

#!/bin/bash
 
# Declare a string array with type
declare -a StringArray=("Windows XP" "Windows 10" "Windows ME" "Windows 8.1"
"Windows Server 2016" )
 
# Read the array values with space
for val in "${StringArray[@]}"; do
  echo $val
done

Keluaran:

$ bash for_list4.sh

Example-5: Iterating string values of an array using ‘*’

Buat file bash bernama ‘for_list5.sh‘ dengan kode berikut. Di sini, simbol ‘*’ digunakan untuk membaca semua nilai string dari array. Perulangan for pertama digunakan untuk menampilkan nilai larik dalam beberapa baris dan peru
langan for kedua digunakan untuk menampilkan nilai larik dalam satu baris.

#!/bin/bash
 
#Declare a string array
LanguageArray=("PHP"  "Java"  "C#"  "C++"  "VB.Net"  "Python"  "Perl")
 
# Print array values in  lines
echo "Print every element in new line"
for val1 in ${LanguageArray[*]}; do
     echo $val1
done
 
echo ""
 
# Print array values in one line
echo "Print all elements in a single line"
for val2 in "${LanguageArray[*]}"; do
    echo $val2
done
echo ""

Keluaran:

$ bash for_list5.sh

 

Example-6: Iterating comma separated string values

Buat file bash baru bernama ‘for_list6.sh’dengan kode berikut. Di Sini,comma (,) digunakan untuk membagi nilai string.  IFS variabel digunakan untuk mengatur pemisah bidang.

#!/bin/bash
DataList=" HTML5, CCS3, BootStrap, JQuery "
Field_Separator=$IFS
 
# set comma as internal field separator for the string list
IFS=,
for val in $DataList;
do
echo $val
done
 
IFS=$Field_Separator

Keluaran:

$ bash for_list6.sh

Example-7: Reading multiple string arrays together

Buat file bash bernama ‘for_list7.sh‘ dan tambahkan skrip berikut. Dalam contoh ini, dua larik string didefinisikan dan digabungkan ke dalam larik lain. Perulangan for bagian luar digunakan untuk membaca larik gabungan dan perulangan for bagian dalam digunakan untuk membaca setiap larik bagian dalam.

#! /bin/sh
str_array1=("Magento 2.2.4" "WooCommerce")
str_array2=("CodeIgnitor" "Laravel")
combine=(str_array1 str_array2)
for arrItem in ${combine[@]}
do
   eval 'for val in "${'$arrItem'[@]}";do echo "$val";done'
done

Keluaran:

$ bash for_list7.sh

Example-8: Using pattern to read the list of strings

Buat file bash baru bernama for_list8.shdengan kode berikut. Di Sini,‘/, /’ pattern digunakan untuk membagi nilai string berdasarkan koma.

#! /bin/sh
 
# Define a list of string variable
stringList=WordPress,Joomla,Magento
 
# Use comma as separator and apply as pattern
for val in ${stringList//,/ }
do
   echo $val
done

Keluaran:

$ bash for_list8.sh

Semoga, contoh tutorial ini akan membantu Anda memahami useran for loop untuk mengulangi daftar string, untuk video tentang topik ini, lihat di bawah:

Related Posts