بش WHILE لوپس کیسے لکھیں

حکم، مطابقت، اور مثال

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

ایک سکرپٹ کی فائل صرف ایک ٹیکسٹ فائل ہے، عام طور پر .SH فائل کی توسیع کے ساتھ، جس میں ہدایات کی ایک ترتیب ہے جس میں کمان لائن ( شیل ) سے بھی پھانسی دی جا سکتی ہے.

لوپ مثال کے طور پر

ذیل میں لوپ کی ایک مثال ہے. جب اعدام کیا جائے تو، اس اسکرپٹ فائل کو 1 سے 9 پر اسکرین پر پرنٹ کریں گے. جبکہ بیان آپ کو لوپ کے مقابلے میں ختم ہونے کی حالت کی وضاحت کے لئے زیادہ لچک فراہم کرتا ہے.

#! / bin / bash شمار = 1 جبکہ [$ count -le 9] گونج "$ شمار" نیند 1 ((شمار ​​++) کیا گونج

مثال کے طور پر، آپ کو اضافہ بیان بیان کرنے کی طرف سے پچھلا سکرپٹ ایک لامحدود لوپ بنا سکتے ہیں "((شمار ​​++))":

#! / بن / بیش شمار = 1 جبکہ [$ count -le 9] "$ count" نیند 1 گونج کرتے ہیں

"نیند 1" بیان ہر قدم پر 1 سیکنڈ کے لئے عملدرآمد کو روکتا ہے. اس عمل کو ختم کرنے کیلئے Ctrl + C کی شارٹ کٹ کا استعمال کریں.

آپ کو حالت حال کے طور پر ایک کولمبیا ڈال کر ایک لاتعداد لوپ بھی بنا سکتے ہیں:

#! / bin / bash شمار = 1 جبکہ: "$ شمار" نیند 1 ((شمار ​​+ +) کیا گونج کیا

لوپ لوپ میں متعدد حالات استعمال کرنے کے لئے، آپ کو دوہری مربع بریکٹ نوٹیفیکیشن کا استعمال کرنا ہوگا:

شمار = 1 کیا = 0 جبکہ [[$ count -le 9] && [$ done == 0]] "$ count" نیند 1 ((شمار ​​++) کو گونج کرتے ہیں اگر [$ count == 5]؛ پھر $ = 1 فائی کیا

اس رسم الخط میں، "متغیر" متعارف کرایا جاتا ہے 0 اور پھر پھر سیٹ کریں جب گنتی تک پہنچ جائے گی 5. لوپ حالت یہ بتاتی ہے کہ جب تک "لوٹ" نچلے عرصے تک "شمار" کم ہو جائے گا تو "لوپ" صفر سے لہذا گنہگار 5 جب مساوات کے برابر ہوتے ہیں.

"اور" کا مطلب منطقی "اور" اور "||" منطقی "یا" کا مطلب ہے.

مواصلات کے لئے متبادل متبادل "اور" اور "یا" حالتوں میں "اے" اور "اے" ایک مربع بریکٹ کے ساتھ ہے. مندرجہ ذیل شرط:

[[$ count -le 9] && [$ done == 0]]

... کے طور پر دوبارہ لکھا جا سکتا ہے:

[$ count -le 9] -a [$ done == 0]

ایک ٹیکسٹ فائل پڑھنا عام طور پر تھوڑی دیر سے لوپ کے ساتھ کیا جاتا ہے. مندرجہ بالا مثال میں، بش سکرپٹ کو "انوینٹری.txt" نامی فائل کی لائن کی طرف سے مواد کی لائن پڑھی ہے.

فائل = انوینٹری.txt پر عملدرآمد 6

پہلی لائن ان پٹ فائل نام کو "فائل" متغیر میں تفویض کرتی ہے. دوسری سطر فائل کی وضاحت "6" میں "معیاری ان پٹ" کو بچاتا ہے (یہ 3 اور 9 کے درمیان کسی بھی قدر ہو سکتا ہے). ایسا کیا جاتا ہے تاکہ سکرپٹ کے آخر میں "0" descriptor "فائل" کو بحال کرنے کے لئے بحال کیا جاسکتا ہے (بیان دیکھیں "عمل 0 تیسرے لائن میں ان پٹ فائل کو descriptor فائل 0،" استعمال کیا جاتا ہے جس میں استعمال کیا جاتا ہے معیاری ان پٹ کے لئے. "پڑھ" بیان پھر ہر تکرار پر فائل سے ایک سطر پڑھتا ہے اور اسے "line1" متغیر میں تفویض کرتا ہے.

تھوڑی دیر کے بعد لوپ سے نکلنے کے لئے، آپ اس طرح کے وقفے کا بیان استعمال کرسکتے ہیں:

شمار = 1 کیا = 0 جبکہ [$ count -le 9] "$ شمار" نیند 1 ((شمار ​​+ +)) گونج کرتے ہیں تو [$ count == 5] پھر ختم کر دیا گونگا ختم

لوپ کے دوران اختتام پر وقفے کے وقفے کو اسکپس پروگرام پر عملدرآمد اور اس کے بعد کسی بھی بیانات پر عملدرآمد. اس معاملے میں، بیان "گونج ختم".

جاری بیان، موجودہ تکرار کے لوپ بیان کے دوران صرف باقی باقی باقی کھائیں اور براہ راست اگلے سفر میں چھلانگ لیتے ہیں:

شمار = 1 کیا = 0 جبکہ [$ count -le 9] 1 سوتے ہیں ((شمار ​​+ +)) اگر [$ count == 5] پھر جاری رکھیں "$ شمار" کیا گونج ختم

اس صورت میں، "جاری" بیان کو مرتب کیا جاتا ہے جب متغیر "شمار" تک پہنچ جاتا ہے 5. اس کا مطلب یہ ہے کہ اگلے بیان (گونگا "$ شمار") اس تکرار پر عمل درآمد نہیں کیا جاتا ہے (جب "شمار" کی قیمت 5 ہے).