Bash 'if else' بیان: سبق اور مثالیں۔

مشروط کوڈ پر عمل درآمد کے لیے باش میں if…else بیان کا استعمال۔

Bash (Bourne Again Shell) GNU/Linux آپریٹنگ سسٹمز میں ایک شیل کمانڈ پرامپٹ اور اسکرپٹنگ زبان ہے۔ یہ زیادہ تر لینکس کی تقسیم کے لیے ڈیفالٹ شیل ہے۔

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

تعارف

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

نوٹ کریں کہ، دو سے زیادہ شرائط کی وضاحت کی جا سکتی ہے، جس کے لیے elif بیان استعمال کیا جا سکتا ہے. استعمال کنندہ کسی بھی قسم کی شرائط دے سکتا ہے۔ elif، اور آخر کار استعمال کرتے ہوئے ایک طے شدہ حالت اور بلاک آئیے ذیل میں نحو اور مثالوں میں اس کے بارے میں مزید دیکھیں۔

عمومی نحو

کے لیے عمومی نحو اور اگر باش میں بیان ہے:

پھر اگر  اور  fi

یہاں، اگر satisfies، یعنی، اگر یہ 0 (کامیابی) لوٹاتا ہے، تو کوڈ بلاک 1 پر عمل درآمد کیا جاتا ہے۔ اگر حالت 0 واپس نہیں کرتی ہے، یعنی، یہ ناکامی کی حیثیت لوٹاتا ہے، تو کوڈ بلاک 2 کو پھانسی دی جاتی ہے۔ دی اور اگر بلاک a کے ساتھ ختم ہوتا ہے۔ fi بیان

متعدد شرائط کے مطابق متعدد بلاکس کے لیے،elif استعمال کیا جاتا ہے:

پھر اگر  elif پھر  elif پھر  ... ... اور  fi

یہاں، شرائط کو ترتیب سے چیک کیا جاتا ہے اور پہلی شرط کا کوڈ بلاک جو اسٹیٹس 0 (کامیابی) کو واپس کرتا ہے عمل میں لایا جاتا ہے۔ مثلاً اگر غیر صفر کی حیثیت (ناکامی) لوٹاتا ہے، پھر چیک کیا جاتا ہے. اگر واپسی کی حیثیت 0، پھانسی دی جاتی ہے. اس کے بعد، مزید شرائط کی جانچ نہیں کی جاتی ہے اور کوڈ پر عمل درآمد کے بعد کوڈ تک جاری رہتا ہے۔ fi بیان

اگر ان میں سے کوئی بھی شرط 0 واپس نہیں کرتی ہے، دوسرے بلاک میں پھانسی دی جاتی ہے۔ نوٹ کریں کہ else بلاک اختیاری ہے۔ اگر کوئی شرط پوری نہ ہو، اور ساتھ ہی نہیں۔ اور بلاک کی وضاحت کی گئی ہے، کوئی مشروط کوڈ بلاک نہیں چلے گا، اور کوڈ پر عمل درآمد کے بعد کوڈ پر جاری رہے گا۔ fi بیان، جیسا کہ ذیل میں فلوگراف میں دکھایا گیا ہے۔

نوٹ کریں کہ پھر بیان کے بعد ہی استعمال کیا جانا ہے۔ اگر اور elif بیانات اور اس کے بعد کی ضرورت نہیں ہے۔ اور بیان

مثالیں

کوڈ بلاک پر عمل کرنے کے لیے اگر ایک متغیر کی خاص قدر ہے:

x=0 اگر [ $x -eq 0 ] تو بازگشت "X کی قدر 0 ہے" ورنہ بازگشت "X کی قدر 0 نہیں ہے" fi

متعدد اقدار کی جانچ کرنے کے لیے:

x=2 اگر [ $x -eq 0 ] تو بازگشت "X کی قدر 0 ہے" elif [ $x -eq 1 ] پھر بازگشت "X کی قدر 1 ہے" elif [ $x -eq 2 ] پھر بازگشت "کی قدر X 2 ہے ورنہ ایکو "X کی قدر 0 نہیں ہے" fi

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

اگر npm -v پھر ایکو "NPM موجود ہے سسٹم میں" ورنہ sudo apt npm fi انسٹال کریں

مندرجہ بالا مثال میں، چونکہ این پی ایم سسٹم، کمانڈ میں انسٹال نہیں کیا گیا تھا۔ npm -v غیر صفر کی حیثیت واپس کردی۔ لہذا، کوڈ پر عمل درآمد میں چلا گیا۔ اور بلاک، جہاں ہم این پی ایم کا استعمال کرتے ہوئے انسٹال کرتے ہیں۔ مناسب پیکیج مینیجر جیسا کہ ہم دیکھ سکتے ہیں، اس نے مجھے پاس ورڈ درج کرنے کا اشارہ کیا اور npm کی تنصیب شروع کردی۔

ہم دوسرے کو بھی گھونسلا سکتے ہیں۔ اور اگر ایک کے اندر بلاک اگر, اور یا elif بلاک:

x=0 y=1 اگر [ $x -eq 0 ] پھر echo "X is 0" اگر [ $y -eq 1 ] تو echo "Y is 1" ورنہ echo "Y 1 نہیں ہے" fi ورنہ echo "X ہے نہیں 0" fi

یہ اس وقت مفید ہوتا ہے جب ابتدائی حالت کی تسلی ہونے کے بعد شرائط کے الگ سیٹ کو چیک کیا جائے۔

مثال کے طور پر، درج ذیل کوڈ ویب سرور سافٹ ویئر کو انسٹال کرنے کی کوشش کرتا ہے۔

اگر nginx -v پھر بازگشت "NGINX پہلے سے انسٹال ہے۔" دوسری صورت میں اگر sudo apt nginx انسٹال کریں تو "NGINX انسٹالیشن کامیاب" کی بازگشت کریں۔ elif sudo apt install apache2 پھر بازگشت "APACHE2 انسٹالیشن کامیاب۔" دوسری بازگشت "کسی بھی ویب سافٹ ویئر کو انسٹال کرنے سے قاصر ہے۔" fi

کوڈ پہلے چیک کرتا ہے کہ آیا Nginx پہلے سے ہی سسٹم میں انسٹال ہے۔ اگر یہ ہے تو، یہ صرف ایک پیغام دکھاتا ہے اور باہر نکل جاتا ہے۔ اگر یہ نہیں ہے تو، یہ Nginx انسٹال کرنے کی کوشش کرتا ہے۔

اگر کسی وجہ سے، Nginx کو پیکیج سے سسٹم میں انسٹال نہیں کیا جا سکا، تو یہ Apache2 کو انسٹال کرنے کی کوشش کرتا ہے۔ اگر اپاچی 2 بھی انسٹال کرتے وقت ایرر دیتا ہے تو یہ ایک پیغام دکھا کر باہر نکل جاتا ہے کہ کوئی سافٹ ویئر انسٹال نہیں ہو سکتا۔

اسی طرح، اندر اندر ایک نیسٹڈ بلاک استعمال کیا جا سکتا ہے۔ elif بلاک بھی.

پھانسی دینا اور اگر: اسکرپٹس اور کمانڈ لائن

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

صارف اس کوڈ کو اسکرپٹ فائل میں بھی محفوظ کرسکتا ہے اور اسکرپٹ فائل پر عمل درآمد کرسکتا ہے۔

دی #!/bin/bash شروع میں مترجم کی وضاحت کرتا ہے جب فائل کو عمل میں لایا جاتا ہے۔ اگرچہ آج کل باش سب سے زیادہ استعمال ہونے والا شیل ہے، لیکن کچھ صارفین zsh جیسے شیل کو ترجیح دیتے ہیں، جنہیں اس فائل کے شروع میں bash کی جگہ پر بیان کیا جانا چاہیے۔

اس فائل کو چلانے کی اجازت دینے کے لیے، چلائیں:

chmod +x test.sh

آخر میں، فائل کو چلانے کے لیے، چلائیں:

./test.sh

نتیجہ

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