باش If-then-Else مثال۔

Bash If Then Else Example



اس سبق میں ، ہم دیکھیں گے کہ ہم کس طرح ماحولیاتی سکرپٹ میں If-Then-Else بیانات استعمال کرتے ہیں جو ہم لکھتے ہیں۔ اگر کچھ شرائط پوری ہونے پر اسکرپٹ کی کارروائی کا راستہ متعین کرنے کا ایک طریقہ فراہم کرنے کے لیے If-then-Else بیانات ایک مفید ٹول ہیں۔ آئیے دیکھتے ہیں کہ If-then-Else بیانات کے لیے نحو کیا ہے:

اگرکچھ احکامات
پھرپھر حکم
اوردیگر احکامات
ہو

مذکورہ بالا کمانڈ میں ، اگر کچھ احکامات درست پائے جاتے ہیں یا اس کی واپسی کی حیثیت 0 پائی جاتی ہے ، تو حکم پر عمل کیا جائے گا۔ اگر ایسا نہیں ہے تو ، ELSE-COMMANDS کو پھانسی دی جاتی ہے۔ کچھ احکامات میں ، ہم عام طور پر عدد کی شکل میں کچھ سٹرنگ موازنہ یا قدر کا موازنہ کرتے ہیں۔ ہم بہت سارے آپریشن بھی کر سکتے ہیں جس میں فائلیں شامل ہیں۔ آئیے کچھ مثالوں پرائمری کمانڈز دیکھیں جو بنیادی طور پر استعمال ہوتے ہیں جب فائل پر مبنی حالات کے ساتھ کام کرتے ہیں۔







پرائمری مطلب۔
[سے] FILE موجود ہونے پر سچ لوٹتا ہے۔
[-ب] جب فائل موجود ہو اور ایک بلاک اسپیشل فائل ہو تو سچ لوٹتا ہے۔
[-c] جب فائل موجود ہو اور ایک کریکٹر اسپیشل فائل ہو تو سچ لوٹتا ہے۔
[-d] جب فائل موجود ہو اور ڈائریکٹری ہو تو سچ لوٹتا ہے۔
[اور] FILE موجود ہونے پر سچ لوٹتا ہے۔
[-ف] جب فائل موجود ہو اور ایک باقاعدہ فائل ہو تو سچ لوٹتا ہے۔
[-گ] جب فائل موجود ہو اور اس کا SGID بٹ سیٹ ہو تو سچ لوٹتا ہے۔
[-ہ] جب فائل موجود ہو اور علامتی لنک ہو تو سچ لوٹتا ہے۔
[-ک] جب فائل موجود ہو اور اس کا چپچپا سا سیٹ ہو تو سچ لوٹتا ہے۔
[-پی] جب فائل موجود ہو اور نامی پائپ (FIFO) ہو تو درست لوٹتا ہے۔
[-ر] جب فائل موجود ہو اور پڑھنے کے قابل ہو تو سچ لوٹتا ہے۔
[-س] درست لوٹتا ہے جب فائل موجود ہو اور جس کا سائز صفر سے زیادہ ہو۔
[-t] درست بتاتا ہے جب فائل ڈسریکٹر ایف ڈی کھلا ہوتا ہے اور ٹرمینل کا حوالہ دیتا ہے۔
[-U] جب فائل موجود ہو اور اس کا SUID (سیٹ یوزر آئی ڈی) بٹ سیٹ ہو تو سچ لوٹتا ہے۔
[-ان] جب فائل موجود ہو اور لکھنے کے قابل ہو تو سچ لوٹتا ہے۔
[-ایکس] جب فائل موجود ہو اور قابل عمل ہو تو درست لوٹتا ہے۔
[-O] جب فائل موجود ہو اور مؤثر صارف ID کی ملکیت ہو تو درست لوٹتا ہے۔
[-جی] جب فائل موجود ہو اور مؤثر گروپ ID کی ملکیت ہو تو درست لوٹتا ہے۔
[-تھی] جب فائل موجود ہو اور علامتی لنک ہو تو سچ لوٹتا ہے۔
[-N] درست لوٹتا ہے جب فائل موجود ہو اور اس میں ترمیم کی گئی ہو کیونکہ اسے آخری بار پڑھا گیا تھا۔
[-S] جب فائل موجود ہو اور ساکٹ ہو تو سچ لوٹتا ہے۔

THEN-COMMANDS اور ELSE-COMMANDS کوئی بھی درست UNIX آپریشن یا کوئی قابل عمل پروگرام ہو سکتا ہے۔ نوٹ کریں کہ پھر اور ہو کمانڈ نیم کالون سے الگ ہوتے ہیں کیونکہ انہیں اسکرپٹ کے مکمل طور پر الگ الگ عناصر سمجھا جاتا ہے۔



If-then-else سادہ مثال۔

آئیے اپنے سبق کا آغاز ایک نہایت سادہ مثال سے If-Then-Else بیانات سے کریں۔
یہاں ایک نمونہ پروگرام ہے:



اگر مثال۔

اگر مثال۔





یہاں وہ آؤٹ پٹ ہے جو ہم دیکھتے ہیں جب ہم اپنا اسکرپٹ چلاتے ہیں۔

$. ifelse1.sh
اقدار یکساں ہیں۔!
$

کمانڈ لائن دلائل کا استعمال۔

ہم اپنے سکرپٹ میں کمانڈ لائن دلائل بھی استعمال کر سکتے ہیں اور دلائل کی تعداد اور اقدار کو IF بیان میں بطور شرط استعمال کر سکتے ہیں۔ ہم سب سے پہلے درج ذیل مواد کے ساتھ ایک ٹیکسٹ فائل کی وضاحت کرتے ہیں۔



میرا نام لینکس ہنٹ ہے۔ مجھے سرور پسند ہیں ، خاص طور پر اوبنٹو۔ وہ ایسے ہیں۔
ختم!

اب ، ہم ایک سکرپٹ لکھ سکتے ہیں جس سے معلوم ہوتا ہے کہ ٹیکسٹ فائل میں کوئی لفظ آتا ہے یا نہیں۔ آئیے اب اسکرپٹ کی وضاحت کریں:

باہر پھینک دیا $ 2 میں $ 1 تلاش کرنا
گرفت $ 1 $ 2۔
اگر [ -پیدا ہونا ]
پھر
باہر پھینک دیا فائل $ 2 میں $ 1 نہیں ملا۔
اور
باہر پھینک دیا '$ 1 فائل $ 2 میں پایا گیا۔'
ہو
باہر پھینک دیا 'سکرپٹ مکمل ہو گیا۔'

یہ سکرپٹ بہت متحرک ہے۔ یہ لفظ کو تلاش کرنے اور فائل کو کمانڈ لائن سے ہی تلاش کرنے پر غور کرتا ہے۔ اب ، ہم اپنا اسکرپٹ چلانے کے لیے تیار ہیں:

. ifelse2.sh پیار کرتا ہے hello.txt

ہم ایک آؤٹ پٹ دیکھیں گے جیسے:

محبت کی تلاش۔میںhello.txt
محبت مل گئیمیں فائلhello.txt.
اسکرپٹ مکمل

کمانڈ لائن دلائل کی تعداد چیک کی جا رہی ہے۔

IF بیان کے اندر ، ہم یہ بھی چیک کر سکتے ہیں کہ کمانڈ کو کتنے کمانڈ لائن دلائل دیے گئے تاکہ ہم ان پر عمل کر سکیں:

شمار=$ #
اگر [ ! $ count -جی ٹی ]
پھر
باہر پھینک دیا 'کافی دلیل نہیں'
اور
باہر پھینک دیا 'بہت اعلی!'
ہو

آئیے اب اس اسکرپٹ کو چلائیں ، ہم مندرجہ ذیل آؤٹ پٹ دیکھیں گے:

کمانڈ لائن دلائل۔

کمانڈ لائن دلائل۔

If-then-Elif-Else بیانات۔

ہم ایک ہی بلاک میں ایک سے زیادہ IF بیانات بھی رکھ سکتے ہیں تاکہ ہمارے پروگرام کے فیصلے کے راستے کو تنگ کیا جا سکے جو کہ ہم نے ان احکامات پر عمل کرنے کے لیے لیا ہے۔ ہمارے سکرپٹ میں متعدد IF بیانات کی وضاحت کے لیے نحو یہ ہے:

اگرٹیسٹ کمانڈز
پھر
نتیجہ-احکامات
ایلف
ایک اور حکم
پھر
ایک اور نتیجہ-حکم
اور
متبادل حکم
ہو

اگرچہ یہ کافی واقف نظر آتا ہے اور اس کی پیروی کرنا بھی آسان ہے۔ آئیے ایک سادہ سی مثال بیان کرتے ہیں کہ درخت کیسے کام کرتا ہے:

شمار=$ #
اگر [ $ count -ایک ]
پھر
باہر پھینک دیا 'صرف ایک دلیل ملی۔'
ایلف [ $ count -ایک ]
پھر
باہر پھینک دیا 'بہتر ، دو دلائل ملے۔'
اور
باہر پھینک دیا 'اچھی نوکری ، بہت سے دلائل ملے!'
ہو

یہ ہے جو ہم اس کمانڈ کے ساتھ واپس حاصل کرتے ہیں:

اگر پھر ایلف دوسری مثال۔

اگر پھر ایلف دوسری مثال۔

کیس سٹیمنٹ کا استعمال

IF-ELSE بیانات مفید ہوتے ہیں جب آپ کے پاس اختیارات کی ایک بڑی فہرست ہوتی ہے جس پر آپ کو فیصلہ کرنے کی ضرورت ہوتی ہے۔ لیکن اگر آپ نتیجہ کے ساتھ عین مطابق میچ کے چند معاملات میں ہی کوئی کارروائی کرنا چاہتے ہیں تو ہم کیس اسکرپٹس میں کیس بیانات بھی استعمال کر سکتے ہیں۔ اس کا نحو اس طرح لگتا ہے:

معاملہاظہارمیںکیس 1۔)حکم سے عملدرآمد
کیس 2۔)حکم سے عملدرآمد
کیس 2۔)حکم سے عملدرآمد
...)حکم سے عملدرآمد
*)حکم سے عملدرآمد
ایساک

* کے ساتھ آخری کیس پہلے سے طے شدہ کیس کے طور پر کام کرتا ہے اور اس وقت عملدرآمد کیا جائے گا جب مذکورہ بالا مقدمات میں سے کوئی بھی میچ نہ پایا جائے۔

آئیے CASE بیانات کا استعمال کرتے ہوئے جلدی سے ایک سادہ مثال بنائیں۔

معاملہ '$ 1' میں
)
باہر پھینک دیا قیمت 1 ہے۔
؛؛
)
باہر پھینک دیا قیمت 2 ہے۔
؛؛
)
باہر پھینک دیا قیمت 3 ہے۔
؛؛
*)
باہر پھینک دیا 'دوسری قدر گزر گئی۔'
ایساک

ہر کیس بیان by کی طرف سے ختم کیا جاتا ہے۔ (ڈبل نیم کالون کے نشانات) یہ ہے جو ہم اس کمانڈ کے ساتھ واپس حاصل کرتے ہیں:

کیس کی مثال

کیس کی مثال

نتیجہ

اس سبق میں ، ہم نے دیکھا کہ ہم بش سکرپٹ میں IF-ELSE ، IF-THEN-ELIF اور CASE بیانات کو کس طرح استعمال کر سکتے ہیں جس کی وضاحت ہم ان اقدار کی بنیاد پر کرتے ہیں جو ہمارے پروگراموں میں موجود ہیں یا صارف کی جانب سے پوزیشنل استعمال کرتے ہوئے منظور کی گئی ہیں۔ پیرامیٹرز