انڈروئد

لوپ کے لئے باش

آیت الکرسی کی ایسی تلاوت آپ نے شاید پہلے@ کبهی نہ سنی هوU

آیت الکرسی کی ایسی تلاوت آپ نے شاید پہلے@ کبهی نہ سنی هوU

فہرست کا خانہ:

Anonim

لوپ پروگرامنگ کی زبانوں کے بنیادی تصورات میں سے ایک ہے۔ جب آپ کسی خاص حالت تک پہنچ جاتے ہیں تو آپ بار بار کمانڈ کا سلسلہ چلانا چاہتے ہیں۔

سکرپٹ کی زبانیں جیسے باش میں ، تکرار دہرانے والے کاموں کو خود کار بنانے کے ل. مفید ہیں۔

لوپ کے لئے ، جبکہ لوپ کے لئے ، اور لوپ تک ، باش اسکرپٹنگ میں تین بنیادی لوپ تعمیرات ہیں۔

اس ٹیوٹوریل میں ، ہم باش میں لوپ کے لئے بنیادی باتوں کا احاطہ کریں گے۔ ہم آپ کو یہ بھی بتائیں گے کہ لوپ کے بہاؤ کو تبدیل کرنے کے لئے وقفے کو کس طرح استعمال کریں اور بیانات جاری رکھیں۔

لوپ کے لئے معیاری باش

for لوپ آئٹمز کی ایک فہرست پر تکرار کرتا ہے اور دیئے گئے کمانڈ کو انجام دیتا ہے۔

باش فار لوپ مندرجہ ذیل شکل اختیار کرتا ہے:

for item in do done

فہرست خالی جگہوں ، اعداد کی ایک رینج ، کمانڈ کا آؤٹ پٹ ، ایک صف وغیرہ کے ذریعہ جدا تاروں کا ایک سلسلہ ہوسکتی ہے۔

لوپ اوور ڈور

مثال کے طور پر نیچے کی لوپ تاروں کی فہرست میں ہر آئٹم پر تکرار کرے گی ، اور متغیر element موجودہ آئٹم پر سیٹ ہوگا۔

for element in Hydrogen Helium Lithium Beryllium do echo "Element: $element" done

لوپ مندرجہ ذیل پیداوار پیدا کرے گا:

Element: Hydrogen Element: Helium Element: Lithium Element: Beryllium

تعداد کی حد سے زیادہ لوپ

آپ سلسلہ آغاز اور حد کے اختتامی نقطہ کی وضاحت کرکے اعداد یا حرف کی حد متعین کرنے کے لئے ترتیب اظہار کا استعمال کرسکتے ہیں۔ ترتیب اظہار مندرجہ ذیل شکل اختیار کرتا ہے:

{START..END}

مثال کے طور پر لوپ 0 سے 3 تک تمام اعداد کے ذریعہ اعادہ کرے گا۔

for i in {0..3} do echo "Number: $i" done

Number: 0 Number: 1 Number: 2 Number: 3

باش 4 سے شروع ہو کر ، حدود استعمال کرتے وقت انکریمنٹ کی وضاحت کرنا بھی ممکن ہے۔ اظہار مندرجہ ذیل شکل اختیار کرتا ہے:

{START..END..INCREMENT}

for i in {0..20..5} do echo "Number: $i" done

Number: 0 Number: 5 Number: 10 Number: 15 Number: 20

صف عناصر کو ختم کریں

آپ عناصر کی ایک صف پر اعادہ کرنے کے لئے for لوپ بھی استعمال کرسکتے ہیں۔

ذیل کی مثال میں ، ہم ایک صفی کتاب کی تعریف کر رہے ہیں اور سرنی کے ہر عنصر پر اعادہ کر رہے ہیں۔

BOOKS=('In Search of Lost Time' 'Don Quixote' 'Ulysses' 'The Great Gatsby') for book in "${BOOKS}"; do echo "Book: $book" done

Book: In Search of Lost Time Book: Don Quixote Book: Ulysses Book: The Great Gatsby

لوپ کے لئے سی طرز باش

لوپ کے لئے سی طرز کا نحو مندرجہ ذیل شکل اختیار کر رہا ہے۔

for ((INITIALIZATION; TEST; STEP)) do done

ابتدائی حصہ صرف ایک بار INITIALIZATION ہوتا ہے جب لوپ شروع ہوتا ہے۔ اس کے بعد ، TEST حصے کی جانچ کی جاتی ہے۔ اگر یہ غلط ہے تو لوپ کو ختم کردیا جاتا ہے۔ اگر TEST سچ ہے تو ، جسم کے لئے لوپ کے اندر کمانڈز پر عمل درآمد کیا جاتا ہے اور STEP کا حصہ اپ ڈیٹ ہوجاتا ہے۔

مندرجہ ذیل کوڈ میں ، لوپ اسٹارز i = 0 ، پھر اس سے پہلے کہ ہر تکرار کی جانچ پڑتال میں i ≤ 10 ۔ اگر صحیح ہے تو یہ 1 اور i کی موجودہ قیمت 1 ( i++ ) پرنٹ کرتا ہے بصورت دیگر لوپ ختم ہوجاتا ہے۔

for ((i = 0; i <= 1000; i++)); do echo "Counter: $i" done

لوپ 1001 مرتبہ تکرار کرے گا اور درج ذیل آؤٹ پٹ تیار کرے گا:

Counter: 0 Counter: 1 Counter: 2… Counter: 998 Counter: 999 Counter: 1000

بیانات توڑ اور جاری رکھیں

وقفے اور جاری بیانات لوپ پر عمل درآمد کو کنٹرول کرنے کے لئے استعمال کیا جا سکتا ہے۔

توڑ بیان

بریک اسٹیٹمنٹ موجودہ لوپ کو ختم کرتا ہے اور پروگرام کے کنٹرول کو بیان پر منتقل کرتا ہے جو اختتامی بیان کی پیروی کرتا ہے۔ عام طور پر جب کسی خاص حالت کی تکمیل ہوتی ہے تو لوپ کو ختم کرنے کے لئے استعمال کیا جاتا ہے۔

مندرجہ ذیل مثال میں ، ہم موجودہ بیان شدہ شے 'لتھیم' کے برابر ہونے کے بعد لوپ پر عمل درآمد ختم کرنے کے لئے ، ایف آئی ٹی کو استعمال کر رہے ہیں۔

for element in Hydrogen Helium Lithium Beryllium; do if]; then break fi echo "Element: $element" done echo 'All Done!'

Element: Hydrogen Element: Helium All Done!

بیان جاری رکھیں

جاری بیان ایک لوپ کی موجودہ تکرار سے باہر نکلتا ہے اور لوپ کے اگلے تکرار پر پروگرام کنٹرول کو منتقل کرتا ہے۔

مندرجہ ذیل مثال میں ، ہم اعداد کی ایک حد سے تکرار کر رہے ہیں اور جب موجودہ تکرار کردہ آئٹم '2' کے برابر ہے تو جاری بیان کی وجہ سے پھانسی لوپ کے آغاز میں واپس آسکتی ہے اور اگلی تکرار کے ساتھ جاری رہ سکتی ہے۔

for i in {1..5}; do if]; then continue fi echo "Number: $i" done

Number: 1 Number: 3 Number: 4 Number: 5

لوپ مثال کے لئے باش

فائل نام میں خالی جگہوں کے ساتھ فائلوں کا نام تبدیل کرنا

مندرجہ ذیل مثال سے پتہ چلتا ہے کہ موجودہ ڈائریکٹری میں موجود تمام فائلوں کو اس کے ناموں میں خالی جگہ کی جگہ سے بدل کر اس کا نام تبدیل کرنے کے لئے لوپ کے لئے باش کو کس طرح استعمال کریں۔

for file in *\ *; do mv "$file" "${file// /_}" done

آئیے لائن کے ذریعہ کوڈ لائن کو توڑ دیں:

  • پہلی لائن ایک for لوپ بناتی ہے اور اس کے نام کی جگہ والی تمام فائلوں کی فہرست کے ذریعہ اس کی تکرار کرتی ہے۔ اظہار *\ * تشکیل دیتا ہے۔ دوسری لائن اس فہرست کے ہر آئٹم پر لاگو ہوتا ہے اور فائل کو ایک نئی جگہ پر منتقل کرتا ہے جس کی جگہ کو انڈر سکور ( _ ) کے ساتھ بدلتا ہے۔ حص ${file// /_} پیرلٹر کے اندر کسی پیٹرن کو تار کے ساتھ بدلنے کے لئے شیل پیرامیٹر توسیع کا استعمال کررہا ہے۔ done لوپ طبقہ کے اختتام کی طرف اشارہ کرتا ہے۔

فائل کی توسیع کو تبدیل کرنا

مندرجہ ذیل مثال سے پتہ چلتا ہے کہ موجودہ ڈائرکٹری میں.jpeg کے ساتھ ختم ہونے والی تمام فائلوں کو.jpeg سے.jpg کی جگہ لے کر ، نام تبدیل کرنے کے لئے لوپ کے لئے باش کا استعمال کیسے کریں۔

for file in *.jpeg; do mv -- "$file" "${file%.jpeg}.jpg" done

آئیے لائن کے ذریعہ کوڈ لائن کا تجزیہ کریں:

  • پہلی سطر 'jjgg' کے ساتھ ختم ہونے والی تمام فائلوں کی فہرست کے ذریعے ایک لوپ تیار کرتی ہے اور اس کی تکرار کرتی ہے۔ دوسری لائن اس فہرست کے ہر آئٹم پر لاگو ہوتی ہے اور فائل کو '.jpg' کی جگہ '.jpg' کی جگہ لے جاتی ہے۔. ${file%.jpeg} شیل پیرامیٹر کی توسیع کا استعمال کرتے ہوئے فائل نام سے '.jpeg' حصہ کو ہٹانے کے لئے لوپ طبقہ کے اختتام کی طرف اشارہ ہوتا ہے۔

نتیجہ اخذ کرنا

اب تک آپ کو اچھی طرح سے سمجھنا چاہئے کہ فہرستوں کے ذریعے لوٹ کے لئے باز کو کس طرح استعمال کریں۔

بش لوپ ٹرمینل