Bash For Loop Kullanan Paralel İşler

Bash For Loop Kullanan Paralel Isler



Linux'ta birden çok komutu veya Bash betiğini paralel olarak çalıştırmanın birçok yolu vardır. Yollardan biri, paralel bir iş çalıştırmak için Bash betiğinde bir “for” döngüsü kullanmaktır. Bu döngü, “seq” komutunu kullanarak paralel işleri çalıştırmak için çok kullanışlıdır. Bu eğitimde bir 'for' döngüsü kullanarak paralel işleri yürütmenin farklı yolları gösterilmektedir.

Farklı Paralel İş Örnekleri

'For' döngüsünü kullanarak paralel işleri çalıştırmanın farklı yolları, eğitimin bu bölümünde gösterilmektedir.

Örnek 1: 'For' Döngüsünü Kullanarak Paralel İşleri Çalıştırın

Bash betiğinde paralel işleri gerçekleştirmenin daha basit yolu “for” döngüsünü kullanmaktır. 'For' döngüsünü 10000 kez çalıştıran ve 1000 kez yinelemeden sonra bir sayı yazdıran aşağıdaki komut dosyasıyla bir Bash dosyası oluşturun. Bu görev, 'for' döngüsü kullanılarak paralel olarak yapılır.







#!/bin/bash

#10000'e ulaşana kadar döngüyü yinele

için val içinde ` sıra 0 1000 10000 ` ;

Yapmak

#Her 1000. sayıyı yazdır

Eko $val

Tamamlandı

Komut dosyasını çalıştırdıktan sonra aşağıdaki çıktı görünür. Çıktıda yazdırılan 0 ile 10000 arasında 10 sayı vardır:



  p3



Örnek 2: İç İçe 'For' Döngüsünü Kullanarak Paralel İşleri Çalıştırın

'A'dan 'C'ye kadar olan alfabetik karakterleri ve 1'den 3'e kadar olan sayıları kullanarak seri numarasını oluşturan iç içe geçmiş 'for' döngüsünü çalıştıran aşağıdaki betiği içeren bir Bash dosyası oluşturun. Dış döngünün ilk yinelemesinde ve sonrasında iç döngünün yinelemesini tamamlama, “A1. CodeIgniter”, “A2. Laravel” ve “A3. CakePHP” yazdırılır. Dış döngünün ikinci yinelemesinde ve iç döngünün yinelemesini tamamladıktan sonra “B1. Oracle”, “B2. MySQL” ve “B3. SQL” yazdırılır. Dış döngünün üçüncü yinelemesinde ve iç döngünün yinelemesini tamamladıktan sonra “C1. CSS”, “C2. JQuery” ve “C3. JavaScript” yazdırılır.





#Dış döngü

için alfa içinde { AC }

Yapmak

#İç döngü

için sayı içinde { 1 .. 3 }

Yapmak

#Çıktıyı koşula göre yazdır

eğer [ $alfa == 'A' ] ; Daha sonra

diziListesi = ( 'Kod Ateşleyici' 'Laravel' 'KekPHP' )

elif [ $alfa == 'B' ] ; Daha sonra

diziListesi = ( 'Kâhin' 'MySQL' 'SQL' )

elif [ $alfa == 'C' ] ; Daha sonra

diziListesi = ( 'CSS' 'JQuery' 'JavaScript' )

olmak

Eko ' $alfa $sayı . ${arrayList[$number-1]} '

Tamamlandı

Tamamlandı

Komut dosyası yürütüldükten sonra aşağıdaki çıktı görünür:



Örnek 3: 'For' Döngüsü ve 'Bekle' Komutunu Kullanarak Paralel İşleri Çalıştırın

'Bekle' komutu, birden çok iş çalışırken bir işin görevi tamamlamasını beklemek için kullanılan Bash'in çok kullanışlı bir komutudur. Daha az iş çalışıyorsa, 'bekle' komutu yeni bir işi eşzamansız olarak başlatır. İç içe 'for' döngüsü içinde bir arka plan işi çalıştıran aşağıdaki komut dosyasıyla bir Bash dosyası oluşturun. Tüm alt süreçlerin tamamlanmasını beklemek için “bekle” komutu kullanılır. Arka plan işlemi olarak “date” ve “sleep” komutları yürütülür.

#Dış döngü

için Ben içinde { 1 .. 2 }

Yapmak

#İç döngü

için J içinde { 1 .. 3 }

Yapmak

eğer Ölçek ' $(işler | wc -l) ' -ge 2 ; Daha sonra

Beklemek -N

olmak

#Arka plan işlemi

{

tarih

uyumak 1

} &

Tamamlandı

Tamamlandı

Komut dosyasını çalıştırdıktan sonra aşağıdaki çıktı görünür. Geçerli tarih ve saat, iç içe geçmiş “for” döngülerini 2×3=6 kez yinelemek için arka plan işleminden 6 kez yazdırılır:

Örnek 4: Sıralı ve Paralel Çalıştırmalar Arasındaki Farklar

Sıralı çalıştırma ile paralel çalıştırma arasındaki farkları gösteren aşağıdaki komut dosyasıyla bir Bash dosyası oluşturun. prn_char() işlevi, betikte 0,5 saniye süreyle beş karakter yazdırmak için tanımlanmıştır. Ardından, prn_char() işlevini sırayla çalıştırmak için ilk “for” döngüsü kullanılır. İkinci 'for' döngüsü, prn_char() işlevini paralel olarak çalıştırmak için kullanılır.

#0,5 saniye süreyle 5 karakter yazdırmak için bir işlev tanımlayın

prn_char ( ) {

için C içinde Merhaba; Yapmak

uyumak 0,5 ;

Eko -N $ c ;

Tamamlandı

Eko

}

#For döngüsünü sırayla kullanarak işlevi çalıştırın

için dışarı içinde { 1 .. 3 } ; Yapmak

prn_char ' $ çıkışı '

Tamamlandı

#For döngüsünü paralel olarak kullanarak işlevi çalıştırın

için dışarı içinde { 1 .. 3 } ; Yapmak

prn_char ' $ çıkışı ' &

Tamamlandı


Komut dosyasını çalıştırdıktan sonra aşağıdaki çıktı görünür. Ardışık çalıştırma ile paralel çalıştırma arasındaki fark çıktıda gösterilir. Burada, prn_char() işlevinin “for” döngüsünün tüm karakterleri ardışık çalıştırmada bir defada yazdırılır ve paralel çalıştırmada her karakter üç kez yazdırılır:

  p4

Çözüm

Paralel işleri 'for' döngüsü kullanarak çalıştırmak birçok programlama amacı için gereklidir. 'For' döngüsünü kullanarak paralel işleri çalıştırma yöntemleri bu öğreticide gösterilmektedir.