لوپ کے لیے استعمال کرتے ہوئے متوازی جابز باش کریں۔

Lwp K Ly Ast Mal Krt Wy Mtwazy Jabz Bash Kry



لینکس میں متعدد کمانڈز یا باش اسکرپٹس کو متوازی طور پر چلانے کے بہت سے طریقے موجود ہیں۔ ایک طریقہ یہ ہے کہ متوازی کام چلانے کے لیے Bash اسکرپٹ میں 'for' لوپ کا استعمال کریں۔ یہ لوپ 'seq' کمانڈ کا استعمال کرتے ہوئے متوازی جابز کو چلانے کے لیے بہت مفید ہے۔ اس ٹیوٹوریل میں 'for' لوپ کا استعمال کرتے ہوئے متوازی ملازمتوں کو انجام دینے کے مختلف طریقے دکھائے گئے ہیں۔

متوازی ملازمتوں کی مختلف مثالیں۔

'for' لوپ کا استعمال کرتے ہوئے متوازی جابز کو چلانے کے مختلف طریقے ٹیوٹوریل کے اس حصے میں دکھائے گئے ہیں۔

مثال 1: 'فور' لوپ کا استعمال کرتے ہوئے متوازی جابس چلائیں۔

Bash اسکرپٹ میں متوازی کام انجام دینے کا آسان طریقہ 'for' لوپ کا استعمال ہے۔ درج ذیل اسکرپٹ کے ساتھ ایک Bash فائل بنائیں جو 10000 بار 'for' لوپ کو چلاتی ہے اور 1000 بار تکرار کے بعد ایک نمبر پرنٹ کرتی ہے۔ یہ کام متوازی طور پر 'for' لوپ کا استعمال کرتے ہوئے کیا جاتا ہے۔







#!/bin/bash

# لوپ کو 10000 تک پہنچنے تک دہرائیں۔

کے لیے val میں ` seq 0 1000 10000 ` ;

کیا

#ہر 1000ویں نمبر پر پرنٹ کریں۔

بازگشت $val

ہو گیا

اسکرپٹ پر عمل کرنے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوتا ہے۔ 0 اور 10000 کے درمیان 10 نمبر ہیں جو آؤٹ پٹ میں پرنٹ ہوتے ہیں:



  p3



مثال 2: نیسٹڈ 'فور' لوپ کا استعمال کرتے ہوئے متوازی جابس چلائیں۔

درج ذیل اسکرپٹ کے ساتھ ایک Bash فائل بنائیں جو نیسٹڈ 'for' لوپ کو چلاتا ہے جو 'A' سے 'C' تک حروف تہجی کے حروف اور نمبر 1 سے 3 تک کا استعمال کرتے ہوئے سیریل نمبر تیار کرتا ہے۔ بیرونی لوپ کے پہلے تکرار میں اور بعد میں اندرونی لوپ کی تکرار کو مکمل کرنا، 'A1. CodeIgniter'، 'A2۔ Laravel'، اور 'A3. کیک پی ایچ پی' چھپی ہوئی ہے۔ بیرونی لوپ کی دوسری تکرار میں اور اندرونی لوپ کی تکرار مکمل کرنے کے بعد، 'B1. اوریکل'، 'B2. MySQL'، اور 'B3. ایس کیو ایل' پرنٹ کیے گئے ہیں۔ بیرونی لوپ کی تیسری تکرار میں اور اندرونی لوپ کی تکرار مکمل کرنے کے بعد، 'C1. CSS'، 'C2. JQuery'، اور 'C3. JavaScript' پرنٹ کیا جاتا ہے.





#بیرونی لوپ

کے لیے الفا میں { A..C }

کیا

#اندرونی لوپ

کے لیے نمبر میں { 1 .. 3 }

کیا

# کنڈیشن کی بنیاد پر آؤٹ پٹ پرنٹ کریں۔

اگر [ $alpha == 'اے' ] ; پھر

arrayList = ( 'CodeIgniter' 'لاریول' 'کیک پی ایچ پی' )

elif [ $alpha == 'B' ] ; پھر

arrayList = ( 'اوریکل' 'MySQL' 'SQL' )

elif [ $alpha == 'سی' ] ; پھر

arrayList = ( 'CSS' 'JQuery' 'جاوا اسکرپٹ' )

ہونا

بازگشت ' $alpha $نمبر . ${arrayList[$number-1]} '

ہو گیا

ہو گیا

اسکرپٹ پر عمل کرنے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوتا ہے:



مثال 3: 'فار' لوپ اور 'انتظار' کمانڈ کا استعمال کرتے ہوئے متوازی جابس چلائیں

'انتظار' کمانڈ Bash کی ایک بہت مفید کمانڈ ہے جو کہ ایک کام کے مکمل ہونے کا انتظار کرنے کے لیے استعمال ہوتی ہے جب متعدد جاب چل رہی ہوں۔ اگر کم ملازمتیں چل رہی ہیں تو، 'انتظار' کمانڈ متضاد طور پر ایک نیا کام شروع کرتی ہے۔ درج ذیل اسکرپٹ کے ساتھ ایک Bash فائل بنائیں جو نیسٹڈ 'for' لوپ کے اندر بیک گراؤنڈ جاب چلاتی ہے۔ 'انتظار' کمانڈ کا استعمال بچوں کے تمام عمل کو مکمل کرنے کے انتظار کے لیے کیا جاتا ہے۔ 'تاریخ' اور 'نیند' کمانڈز کو پس منظر کے عمل کے طور پر عمل میں لایا جاتا ہے۔

#بیرونی لوپ

کے لیے میں میں { 1 .. 2 }

کیا

#اندرونی لوپ

کے لیے جے میں { 1 .. 3 }

کیا

اگر پرکھ ' $(ملازمتیں | wc -l) ' -ge 2 ; پھر

انتظار کرو -n

ہونا

# پس منظر کا عمل

{

تاریخ

سونا 1

} اور

ہو گیا

ہو گیا

اسکرپٹ پر عمل کرنے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوتا ہے۔ موجودہ تاریخ اور وقت پس منظر کے عمل سے 6 بار پرنٹ کیے گئے ہیں تاکہ 2×3=6 بار کے لیے نیسٹڈ 'for' لوپس کو دہرایا جا سکے۔

مثال 4: ترتیب وار اور متوازی رنز کے درمیان فرق

درج ذیل اسکرپٹ کے ساتھ ایک Bash فائل بنائیں جو ترتیب وار رن اور متوازی رن کے درمیان فرق کو ظاہر کرے۔ prn_char() فنکشن کو اسکرپٹ میں 0.5 سیکنڈ کی مدت کے ساتھ پانچ حروف پرنٹ کرنے کے لیے بیان کیا گیا ہے۔ اگلا، پہلا 'for' لوپ prn_char() فنکشن کو ترتیب وار چلانے کے لیے استعمال کیا جاتا ہے۔ دوسرا 'for' لوپ prn_char() فنکشن کو متوازی طور پر چلانے کے لیے استعمال ہوتا ہے۔

# 0.5 سیکنڈ کی مدت کے ساتھ 5 حروف پرنٹ کرنے کے لیے فنکشن کی وضاحت کریں۔

prn_char ( ) {

کے لیے c میں ہیلو؛ کیا

سونا 0.5 ;

بازگشت -n $c ;

ہو گیا

بازگشت

}

# لوپ کو ترتیب سے استعمال کرتے ہوئے فنکشن کو چلائیں۔

کے لیے باہر میں { 1 .. 3 } ; کیا

prn_char ' $آؤٹ '

ہو گیا

# متوازی میں لوپ کا استعمال کرتے ہوئے فنکشن کو چلائیں۔

کے لیے باہر میں { 1 .. 3 } ; کیا

prn_char ' $آؤٹ ' اور

ہو گیا


اسکرپٹ پر عمل کرنے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوتا ہے۔ ترتیب وار رن اور متوازی رن کے درمیان فرق آؤٹ پٹ میں دکھایا گیا ہے۔ یہاں prn_char() فنکشن کے 'for' لوپ کے تمام کریکٹرز ایک وقت میں ترتیب وار رن میں پرنٹ کیے جاتے ہیں اور ہر کریکٹر کو متوازی رن میں تین بار پرنٹ کیا جاتا ہے:

  p4

نتیجہ

بہت سے پروگرامنگ مقاصد کے لیے 'for' لوپ کا استعمال کرتے ہوئے متوازی جابز کو چلانا ضروری ہے۔ 'for' لوپ کا استعمال کرتے ہوئے متوازی جابز کو چلانے کے طریقے اس ٹیوٹوریل میں دکھائے گئے ہیں۔