باش سکرپٹ کیا ہے؟

What Is Bash Script



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

باز کیوں مفید ہے اور یہ کس کے لیے مفید ہے؟

اگر آپ اپنے OS پر زیادہ کنٹرول چاہتے ہیں اور OS سے متعلق مختلف کام انجام دینا چاہتے ہیں تو bash آپ کا راستہ ہے۔ بش کے ذریعہ ، ہم نہ صرف سکرپٹ لینگویج کا حوالہ دیتے ہیں بلکہ ان ٹولز کا بھی حوالہ دیتے ہیں جو لینکس آپریٹنگ سسٹم کے ساتھ آتے ہیں۔ لینکس پر ہر ایک ٹول کا اپنا کام ہے اور ہر ایک انفرادی طور پر مختلف کام انجام دیتا ہے۔ جب بھی آپ کو ان تمام ٹولز کو جوڑنے اور ان کو اس طرح سے جوڑنے کی ضرورت ہو تو بش واقعی مفید ہے کہ وہ سب ایک کام کو پورا کرنے کے لئے ہم آہنگی سے کام کرتے ہیں جو کہ دوسری صورت میں کرنا بہت مشکل ہے۔ مثال کے طور پر ، جو بھی لینکس OS کے ساتھ کچھ کرنا ہے وہ دیگر پروگرامنگ زبانوں جیسے ازگر یا پرل میں بھی کیا جا سکتا ہے لیکن OS سے متعلق مختلف کاموں کو پورا کرنا بہت مشکل ہے۔ لینکس OS سے متعلق کچھ بھی کرنے کا ایک سادہ ، سیاہ اور سفید اور آسان طریقہ بش کا استعمال ہے۔ جو بھی لینکس OS ٹولز (جیسے ls ، cd ، cat ، touch ، grep ، وغیرہ) پر مشتمل کام کرنا چاہتا ہے ، اس کے لیے کسی اور پروگرامنگ لینگویج کی بجائے bash سیکھنا واقعی مفید ہے۔







باش دیگر پروگرامنگ زبانوں سے کیسے موازنہ کرتا ہے؟

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



باش سکرپٹ کیسے بنائیں اور چلائیں؟

بش اسکرپٹ بنانے کے لیے ، آپ کو پہلے فائل کے نام کے آخر میں .sh کی توسیع کے ساتھ ایک ٹیکسٹ فائل بنانی ہوگی۔ آپ ٹرمینل کا استعمال کرتے ہوئے باش اسکرپٹنگ فائل بنا سکتے ہیں۔



$چھوناscript.sh


مذکورہ کمانڈ میں ٹائپ کرنے کے بعد ، انٹر کی کو دبائیں اور آپ کے پاس اپنی موجودہ ورکنگ ڈائرکٹری میں باش سکرپٹنگ فائل بنائی جائے گی۔ لیکن ایسا نہیں ہے ، ہم نے اسکرپٹنگ فائل بنائی ہے لیکن ہمیں اسکرپٹ مکمل کرنے اور اسے چلانے کے لیے کچھ اقدامات کرنے پڑتے ہیں۔ سب سے پہلے ، اسکرپٹنگ فائل کو نینو ایڈیٹر یا جیڈٹ میں کھولیں اور پہلی لائن میں ٹائپ کریں:





#!/bin/bash


یہ ہر باش سکرپٹنگ فائل کے لیے ایک معیاری پہلی لائن ہے جو اسے باش سکرپٹ کے طور پر پہچاننے میں مدد دیتی ہے۔ کوئی بھی اسکرپٹ جس میں #!/bin/bash نہ ہو پہلی سطر میں bash اسکرپٹ نہیں سمجھا جائے گا ، اس لیے اس لائن کو ہر سکرپٹ کے اوپر شامل کرنا یقینی بنائیں۔ ایک بار جب آپ نے یہ لائن جوڑ دی ، اب آپ اسکرپٹ میں لکھنا شروع کر سکتے ہیں۔ مثال کے طور پر ، میں یہاں ایک سادہ ایکو کمانڈ لکھوں گا۔

$باہر پھینک دیایہ لینکس ہنٹ ، بہترین سیکھنے کا پلیٹ فارم ہے۔کے لیےبش۔


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



$ایل ایس -کرنے کے لئے


آپ دیکھ سکتے ہیں کہ 'script.sh' سفید رنگ میں لکھا ہوا ہے جو اس بات کی علامت ہے کہ اسکرپٹ ایک نان ایگزیکیوٹیبل فائل ہے کیونکہ ایگزیکیوٹیبل فائلیں عام طور پر سبز رنگ کی ہوتی ہیں۔ مزید ، بائیں طرف ایک نظر ڈالیں جہاں ہمیں -rw -r – r– جیسا نمونہ نظر آتا ہے جو ظاہر کرتا ہے کہ فائل صرف پڑھنے کے قابل اور لکھنے کے قابل ہے۔
پہلا حصہ جو 'rw' پر مشتمل ہے مالک کے لیے ممکنہ طور پر موجودہ صارف کی اجازت ہے۔

دوسرا حصہ جس پر مشتمل ہے 'r' اس گروپ کی اجازت ہے جس میں ہمارے متعدد صارفین ہیں۔

جبکہ 'r' پر مشتمل تیسرا حصہ عوام کے لیے اجازت ہے جس کا مطلب ہے کہ مذکورہ فائل کے لیے کوئی بھی یہ اجازت لے سکتا ہے۔

'r' کا مطلب ہے پڑھنے کی اجازت ، 'w' کا مطلب ہے لکھنے کی اجازت ، 'x' کا مطلب ہے قابل عمل اجازت۔ واضح طور پر ، ہم 'script.sh' کے خلاف x نہیں دیکھتے ہیں۔ قابل عمل اجازتیں شامل کرنے کے لیے ، اسے کرنے کے دو طریقے ہیں۔

طریقہ 1۔

اس طریقہ کار میں ، آپ '+x' کے ساتھ ایک سادہ chmod کمانڈ لکھ سکتے ہیں اور اس میں قابل عمل اجازت شامل ہو جائے گی۔

$chmod+ x script.sh


تاہم ، یہ قابل عمل اجازت دینے کا سب سے موثر طریقہ نہیں ہے کیونکہ یہ نہ صرف مالک بلکہ گروہ اور عوام کو بھی قابل عمل اجازت دیتا ہے جو ہم یقینی طور پر سیکورٹی وجوہات کی بنا پر نہیں چاہتے ہیں۔ ایک نظر ڈالیں:

طریقہ 2۔

اس طریقہ کار میں ، آپ فائلوں کی اجازتوں کا تعین کرنے کے لیے نمبر استعمال کرسکتے ہیں۔ اس سے پہلے کہ ہم اس میں کود جائیں ، میں آپ کو ایک مختصر اندازہ دینا چاہتا ہوں کہ ان نمبروں کا کیا مطلب ہے اور آپ ان کو اجازتوں میں ہیرا پھیری کے لیے کیسے استعمال کر سکتے ہیں۔
پڑھیں = 4
لکھیں = 2
پھانسی = 1
اجازت نمبر chmod کمانڈ کے بعد تین ہندسوں میں ہوں گے اور ہر ہندسہ مالک ، گروپ اور دیگر (پبلک) کی اجازت کی نمائندگی کرتا ہے۔ مثال کے طور پر ، مالک کو پڑھنے ، لکھنے اور عملدرآمد کی اجازت دینا اور گروپ اور دوسروں کو پڑھنے کی اجازت کچھ اس طرح ہوگی:

$chmod 744۔script.sh


اگر آپ نوٹس لے سکتے ہیں ، تو آپ کو یہ احساس ہو جائے گا کہ ہم نے پہلے ہندسے میں 4+2+1 = 7 کے طور پر مالک کے لیے پڑھنا ، لکھنا اور عمل کرنا شامل کیا ہے ، اور گروپ اور دیگر کے لیے ہم پڑھنے کا ہندسہ استعمال کرتے ہیں یعنی 4.

باش اسکرپٹ چلائیں۔

اب آخر کار ہم ایک ایسے مقام پر پہنچ گئے ہیں جہاں ہم بش اسکرپٹ چلا سکتے ہیں۔ اپنی باش سکرپٹ کو چلانے کے لیے ، آپ کو یہ یقینی بنانا ہوگا کہ آپ موجودہ ورکنگ ڈائرکٹری میں ہیں جہاں آپ کا سکرپٹ رہتا ہے۔ یہ لازمی نہیں ہے لیکن اس طرح یہ آسان ہے کیونکہ آپ کو پورا راستہ لکھنے کی ضرورت نہیں ہے۔ ایک بار جب آپ یہ کرچکے ہیں ، اب آگے بڑھیں اور اپنے ٹرمینل ./nameofscript.sh میں لکھیں۔ ہمارے معاملے میں ، اسکرپٹ کا نام 'script.sh' ہے ، لہذا ہم لکھیں گے:

$./script.sh

بش سکرپٹ کی 3 سادہ مثالیں۔

ہیلو لینکس ہنٹ۔
سب سے پہلے ، ہم موجودہ ورکنگ ڈائرکٹری میں ایک bash فائل بنائیں گے۔

$نینوF_script.sh


فائل کے اندر آپ کو درج ذیل لکھنے کی ضرورت ہے۔

#!/bin/bash
باہر پھینک دیا 'ہیلو لینکس ہنٹ'


ایک بار جب آپ اسے لکھ چکے ہیں ، اب فائل کی تبدیلیاں لکھنے کے لیے Ctrl+O دبانے کی کوشش کریں پھر اگر آپ نام کو ایک ہی ہٹ انٹر رکھنا چاہتے ہیں ، ورنہ نام میں ترمیم کریں ، اور پھر انٹر دبائیں۔ اب نینو ایڈیٹر سے باہر نکلنے کے لیے Ctrl+X دبائیں۔ اب آپ اپنی موجودہ ڈائریکٹری میں F_script.sh نامی فائل دیکھیں گے۔
اس فائل کو چلانے کے لیے آپ اس کی اجازت کو تبدیل کر کے اسے قابل عمل بنا سکتے ہیں یا آپ لکھ سکتے ہیں:

$لشکرF_script.sh


ایکو کمانڈ۔
جب ہم ایکو کمانڈ کے بارے میں بات کرتے ہیں تو ، یہ صرف ہر چیز کو پرنٹ کرنے کے لئے استعمال ہوتا ہے جسے آپ پرنٹ کرنا چاہتے ہیں جب تک کہ یہ حوالوں کے اندر لکھا ہوا ہو۔ عام طور پر جب آپ بغیر کسی جھنڈے کے ایکو کمانڈ چلاتے ہیں تو یہ ایک لائن چھوڑ دیتا ہے پھر آؤٹ پٹ پرنٹ کرتا ہے۔ مثال کے طور پر ، اگر ہمارے پاس اسکرپٹ ہے:

#!/bin/bash
باہر پھینک دیا 'اگلی لائن پر پرنٹ کریں'

اسے محفوظ کرنے کے بعد ، اگر ہم اسے چلائیں:

$لشکرF_script.sh


اگر ہم '-n' پرچم کو گونج کے ساتھ استعمال کرتے ہیں تو یہ اسی لائن پر پرنٹ کرتا ہے۔

#!/bin/bash
باہر پھینک دیا 'اسی لائن پر پرنٹ کریں'

اسے محفوظ کرنے کے بعد ، اگر ہم اسے چلائیں:

$لشکرF_script.sh


اسی طرح ، اگر ہم ڈبل کوٹس کے اندر ' n' یا ' t' استعمال کرتے ہیں ، تو یہ اسی طرح پرنٹ کرے گا۔

#!/bin/bash
باہر پھینک دیا 'nپرنٹ کریں۔ٹیایک ہی لائنn'


تاہم ، اگر ہم جھنڈا '-e' استعمال کرتے ہیں ، تو یہ سب کچھ نہ صرف چلا جاتا ہے بلکہ یہ applies n اور applies t پر بھی لاگو ہوتا ہے اور آپ ذیل میں آؤٹ پٹ میں تبدیلیاں دیکھ سکتے ہیں۔

#!/bin/bash
باہر پھینک دیا -اور 'nپرنٹ کریں۔ٹیایک ہی لائنn'


BASH میں تبصرے
ایک تبصرہ ایک لائن ہے جو کمپیوٹر کے لیے اہم نہیں ہے۔ جو بھی آپ بطور تبصرہ لکھتے ہیں وہ کمپیوٹر کے ذریعہ منسوخ یا نظر انداز کر دیا جاتا ہے اور تحریری کوڈ پر اس کا کوئی اثر نہیں ہوتا۔ تبصرے عام طور پر ایک پروگرامر کے لیے کوڈ کی منطق کو سمجھنے کے لیے ایک مفید طریقہ سمجھے جاتے ہیں تاکہ جب وہ کوڈ کے ٹکڑوں پر دوبارہ کام کرے تو وہ تبصرے اس کی منطق اور وجوہات کو یاد دلاتے ہیں کہ اس نے کوڈ کیوں لکھا ہے راستہ تبصرے دوسرے پروگرامرز بھی استعمال کرسکتے ہیں جو شاید کوڈ میں تبدیلیاں کرنا چاہتے ہیں۔ اگر آپ نے کوڈ کا ٹکڑا لکھا ہے اور آپ اسے ہٹانا نہیں چاہتے ہیں لیکن آپ کوڈ کے اس مخصوص ٹکڑے کے بغیر آؤٹ پٹ دیکھنا چاہتے ہیں تو آپ کوڈ کے اس مخصوص ٹکڑے پر تبصرہ کر سکتے ہیں اور آگے بڑھ کر عملدرآمد کر سکتے ہیں۔ آپ کا پروگرام بالکل ٹھیک چلے گا ، آپ کو اچھے نتائج ملیں گے جبکہ یہ اضافی کوڈ آپ کے سکرپٹ میں موجود ہے لیکن تبصروں کی وجہ سے یہ غیر موثر ہے۔ جب بھی آپ اس کوڈ کے ٹکڑے کو دوبارہ استعمال کرنا چاہتے ہیں ، آگے بڑھیں اور ان لائنوں کو غیر سنجیدہ بنائیں اور آپ جانے کے لئے اچھے ہیں۔
بش میں تبصرے لکھنے کے دو طریقے ہیں ایک طریقہ سنگل لائن کمنٹس لکھنا ہے جبکہ دوسرا طریقہ ملٹی لائن کمنٹس لکھنے کے لیے استعمال کیا جاتا ہے۔

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

#!/bin/bash
باہر پھینک دیا -اور 'nپرنٹ کریں۔ٹیایک ہی لائنn'
#یہ سکرپٹ ہمیں /n اور /t کا مجموعہ لاگو کرنے میں مدد کرتا ہے۔



ملٹی لائن کمنٹس۔
ہم کہتے ہیں کہ آپ اپنی اسکرپٹ میں سو لائنوں پر تبصرہ کرنا چاہتے ہیں۔ اس صورت میں ، آپ کے لیے سنگل لائن تبصرے استعمال کرنا مشکل ہوگا۔ آپ ہر لائن پر # ڈال کر اپنا وقت ضائع نہیں کرنا چاہتے۔ ہم ':' اور پھر 'جو بھی تبصرے' استعمال کر سکتے ہیں۔ یہ آپ کو صرف 3 علامتوں میں ٹائپ کرکے ایک سے زیادہ لائنوں پر تبصرہ کرنے میں مدد دے گا جو آسان اور مفید ہیں۔

#!/bin/bash '
: 'یہ اسکرپٹ ہے جو یقینی بناتی ہے۔
یہ n اور t کام کرتا ہے اور لاگو ہوتا ہے۔
میںایک طریقہ جس سے ہمیں مطلوبہ آؤٹ پٹ مل جائے '
باہر پھینک دیا -اور 'nپرنٹ کریں۔ٹیایک ہی لائنn'



Linuxhint.com پر بش سکرپٹ کی 30 مثالوں پر ایک نظر ڈالیں:

30 بش اسکرپٹ کی مثالیں۔

بش سکرپٹنگ میں 6 سب سے اہم سبق

1. مشروط بیان۔
مشروط بیان فیصلہ سازی میں ایک بہت مفید آلہ ہے۔ یہ پروگرامنگ زبانوں میں بڑے پیمانے پر استعمال ہوتا ہے۔ زیادہ کثرت سے ، ہمیں بعض حالات کی بنیاد پر فیصلے کرنے کی ضرورت ہوتی ہے۔ مشروط بیان دی گئی حالت کا جائزہ لیتا ہے اور فیصلہ لیتا ہے۔ بش میں ، ہم مشروط بیان کو بھی دیگر پروگرامنگ زبان کی طرح استعمال کرتے ہیں۔ bash میں مشروط بیان استعمال کرنے کا نحو دیگر پروگرامنگ زبانوں سے تھوڑا سا مختلف ہے۔ اگر حالت بش اور دیگر عمومی مقاصد کی پروگرامنگ زبانوں میں سب سے زیادہ استعمال شدہ مشروط بیان ہے۔ اگر حالت دی گئی حالت کا جائزہ لیتی ہے اور فیصلہ کرتی ہے۔ دی گئی حالت کو ٹیسٹ ایکسپریشن بھی کہا جاتا ہے۔ bash میں if condition استعمال کرنے کے بے شمار طریقے ہیں۔ اگر حالت دوسرے بلاک کے ساتھ استعمال ہوتی ہے۔ صورت میں ، اگر دی گئی شرط درست ہے ، تو if بلاک کے اندر بیانات پر عمل درآمد کیا جاتا ہے ، بصورت دیگر بلاک عمل میں لایا جاتا ہے۔ باش میں if کنڈیشن اسٹیٹمنٹ استعمال کرنے کے کئی طریقے ہیں جو کہ درج ذیل ہیں۔

  1. اگر بیان۔
  2. اگر اور بیان۔
  3. گھریلو اگر بیان۔
  4. اگر ایلف بیان۔

اگر بیان۔
اگر بیان صرف دی گئی حالت کا جائزہ لیتا ہے ، اگر دی گئی شرط درست ہے ، تو اگر بلاک کے اندر بیانات یا احکامات عمل میں لائے جاتے ہیں ، ورنہ پروگرام ختم کر دیا جاتا ہے۔ بش میں ، اگر حالت if کی ورڈ سے شروع ہوتی ہے اور فائی کی ورڈ سے ختم ہوتی ہے۔ اس وقت کے مطلوبہ الفاظ کو بیانات یا احکامات کے بلاک کی وضاحت کرنے کے لیے استعمال کیا جاتا ہے جو ایک خاص شرط کے سچ ہونے پر عملدرآمد کرتے ہیں۔ آئیے ایک متغیر کا اعلان کرتے ہیں اور اگر حالت متغیر کی قدر کا اندازہ کرنے کے لیے استعمال کریں چاہے وہ 10 سے زیادہ ہو یا نہیں۔ -gt حالت سے زیادہ کی تشخیص کے لیے استعمال کیا جاتا ہے جبکہ ، -lt کا استعمال حالت سے کم کی تشخیص کے لیے کیا جاتا ہے۔

#!/bin/bash
کہاں=100۔
#صورت حال کا اعلان
اگر [ $ VAR -جی ٹی 10۔ ]
پھر
باہر پھینک دیا ''$ VAR10 سے زیادہ ہے
#حالت کو ختم کرنا۔
ہو


اگر اور بیان۔
if else بیان بھی مشروط بیان کے طور پر استعمال ہوتا ہے۔ اگر شرط پر عمل درآمد کے بعد بیانات یا احکامات اگر دی گئی شرط درست ہے۔ بصورت دیگر ، اگر دی گئی شرط درست نہیں ہے تو دوسرا بلاک عمل میں لایا جاتا ہے۔ دوسرے بلاک کے بعد if بلاک ہوتا ہے اور دوسرے کی ورڈ سے شروع ہوتا ہے۔

#!/bin/bash
کہاں=
#صورت حال کا اعلان
اگر [ $ VAR -جی ٹی 10۔ ]
پھر
باہر پھینک دیا ''$ VAR10 سے زیادہ ہے
#اور بلاک کا اعلان
اور
باہر پھینک دیا ''$ VAR10 سے کم ہے
#حالت کو ختم کرنا۔
ہو


اگر حالت کا استعمال کرتے ہوئے ایک سے زیادہ حالات کا اندازہ لگایا جا سکتا ہے۔ ہم ایک اور بیان کے اندر ایک سے زیادہ حالات کا جائزہ لینے کے لیے اور آپریٹر (اور) اور یا آپریٹر (II) استعمال کر سکتے ہیں۔

#!/bin/bash
کہاں=بیس
#صورت حال کا اعلان
اگر [[ $ VAR -جی ٹی 10۔ && $ VAR -لٹ 100۔ ]]
پھر
باہر پھینک دیا ''$ VAR10 سے زیادہ اور 100 سے کم ہے
#اور بلاک کا اعلان
اور
باہر پھینک دیا 'شرط پوری نہیں ہوتی'
#حالت کو ختم کرنا۔
ہو


گھریلو اگر بیان۔
اگر گھریلو بیان میں ، ہمارے پاس if بیان کے اندر if بیان ہے۔ پہلے اگر بیان کا جائزہ لیا جائے ، اگر یہ سچ ہے تو دوسرا اگر بیان کا جائزہ لیا جائے۔

#!/bin/bash
کہاں=بیس
#صورت حال کا اعلان
اگر [[ $ VAR -جی ٹی 10۔ ]]
پھر
اگر کسی دوسرے کے اندر حالت ہو تو
اگر [ $ VAR -لٹ 100۔ ]
پھر
باہر پھینک دیا ''$ VAR10 سے زیادہ اور 100 سے کم ہے
#اور بلاک کا اعلان
اور
باہر پھینک دیا 'شرط پوری نہیں ہوتی'
#حالت کو ختم کرنا۔
ہو
اور
باہر پھینک دیا ''$ VAR10 سے کم ہے
ہو


اگر ایلف بیان۔
if elif بیان کو متعدد شرائط کا جائزہ لینے کے لیے استعمال کیا جاتا ہے۔ پہلی شرط if بلاک سے شروع ہوتی ہے اور دوسری شرائط کے بعد elif کلیدی لفظ ہوتا ہے۔ آئیے پچھلے متغیر نمبر کی مثال پر غور کریں اور اگر ہمارے بیش اسکرپٹ میں if elif بیان کو نافذ کریں۔ eq ایک برابر آپریٹر کے طور پر استعمال ہوتا ہے۔

#!/bin/bash
کہاں=بیس
#صورت حال کا اعلان
اگر [[ $ VAR -ایک ]]
پھر
باہر پھینک دیا 'متغیر قدر 1 کے برابر ہے'
ایلف [[ $ VAR -ایک ]]
پھر
باہر پھینک دیا 'متغیر قدر 2 کے برابر ہے'
ایلف [[ $ VAR -ایک ]]
پھر
باہر پھینک دیا 'متغیر قدر 2 کے برابر ہے'
ایلف [[ $ VAR -جی ٹی ]]
پھر
باہر پھینک دیا 'متغیر قیمت 5 سے زیادہ ہے'
ہو


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

جبکہ لوپ۔
جبکہ لوپ ایک ہی بیانات یا احکامات کو بار بار چلاتا ہے۔ یہ حالت کا جائزہ لیتا ہے ، اور بیانات یا احکامات چلاتا ہے جب تک کہ شرط درست نہ ہو۔
یہ بش میں تھوڑی دیر کے لوپ کو استعمال کرنے کا بنیادی نحو ہے۔

جبکہ [حالت یا ٹیسٹ کا اظہار]
کیا
بیانات
ہو گیا

آئیے ہماری script.sh فائل میں جبکہ لوپ کو نافذ کریں۔ ہمارے پاس ایک متغیر VAR ہے جس کی قیمت صفر کے برابر ہے۔ جبکہ لوپ میں ، ہم نے ایک شرط رکھی ہے ، کہ لوپ اس وقت تک چلے جب تک کہ VAR کی قیمت 20 سے کم نہ ہو۔ ہر تکرار کے بعد متغیر قدر میں 1 اضافہ کیا جاتا ہے۔ لہذا ، اس معاملے میں ، لوپ اس وقت تک عملدرآمد شروع کردے گا جب تک متغیر قیمت 20 سے کم نہ ہو۔

#!/bin/bash
کہاں=
جبکہ [ $ VAR -لٹ بیس ]
کیا
باہر پھینک دیا 'متغیر کی موجودہ قیمت ہے۔$ VAR'
#VAR میں قدر میں 1 اضافہ۔
کہاں= $۔((VAR +۔))
ہو گیا


لوپ کے لیے۔
ہر پروگرامنگ زبان میں لوپ سب سے زیادہ استعمال ہونے والا لوپ ہے۔ یہ تکراری کام انجام دینے کے لیے استعمال ہوتا ہے۔ بار بار کام کرنے کا یہ بہترین طریقہ ہے۔ آئیے اپنی script.sh فائل میں لوپ فار ڈوپلیئر کا اعلان کرتے ہیں اور اسے بار بار کام کرنے کے لیے استعمال کرتے ہیں۔

#!/bin/bash
کہاں=
کے لیے (( میں==؛ میں<بیس؛ میں ++))
کیا
باہر پھینک دیا 'ہیلو اور لینکس ہنٹ میں خوش آمدید'
#متغیر i
میں= $۔((میں+))
ہو گیا
باہر پھینک دیا 'یہ لوپ کا اختتام ہے'


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

[شرط] تک
کیا
بیانات
احکامات
ہو گیا

آئیے اپنی script.sh فائل میں جب تک لوپ کو لاگو کریں۔ جب تک کہ حالت غلط نہ ہو لوپ چلے گا (متغیر کی قیمت 20 سے کم ہے)

#!/bin/bash
کہاں=
تک [ $ VAR -جی ٹی بیس ]
کیا
باہر پھینک دیا 'ہیلو اور لینکس ہنٹ میں خوش آمدید'
#متغیر i
کہاں= $۔((VAR +۔))
ہو گیا
باہر پھینک دیا 'یہ لوپ کا اختتام ہے'


3. صارف سے پڑھنا اور اسے اسکرین پر لکھنا۔
باش صارف کو ٹرمینل پر کچھ سٹرنگ ویلیو یا ڈیٹا داخل کرنے کی آزادی دیتا ہے۔ صارف داخل کردہ سٹرنگ یا ڈیٹا کو ٹرمینل سے پڑھا جاسکتا ہے ، اسے فائل میں محفوظ کیا جاسکتا ہے ، اور ٹرمینل پر پرنٹ کیا جاسکتا ہے۔ باش فائل میں ، صارف کا ان پٹ استعمال کرکے پڑھا جاسکتا ہے۔ پڑھیں کلیدی لفظ اور ہم اسے ایک متغیر میں محفوظ کرتے ہیں۔ ایکو کمانڈ کا استعمال کرکے متغیر مواد ٹرمینل پر دکھایا جا سکتا ہے۔

#!/bin/bash
باہر پھینک دیا 'ٹرمینل پر کچھ لکھیں'
#VAR میں درج کردہ قیمت کو محفوظ کرنا۔
پڑھیںکہاں
باہر پھینک دیا آپ نے داخل کیا:$ VAR'


ریڈ کمانڈ کے ساتھ ایک سے زیادہ اختیارات استعمال کیے جا سکتے ہیں۔ سب سے زیادہ استعمال ہونے والے آپشن ہیں -p اور -s۔ -p پرامپٹ دکھاتا ہے اور ان پٹ کو اسی لائن میں لیا جا سکتا ہے۔ –s خاموش موڈ میں ان پٹ لیتا ہے۔ ان پٹ کے حروف ٹرمینل پر دکھائے جاتے ہیں۔ کچھ حساس معلومات یعنی پاس ورڈ درج کرنا مفید ہے۔

#!/bin/bash
پڑھیں -پی 'ای میل درج کریں:'ای میل
باہر پھینک دیا 'پاس ورڈ درج کریں'
پڑھیں پاس ورڈ


4. ٹیکسٹ فائلیں پڑھنا اور لکھنا۔
ٹیکسٹ فائلیں ڈیٹا کو پڑھنے اور لکھنے کے لیے ضروری اجزاء ہیں۔ ڈیٹا عارضی طور پر ٹیکسٹ فائلوں میں محفوظ ہوتا ہے اور اسے ٹیکسٹ فائل سے آسانی سے پڑھا جا سکتا ہے۔ پہلے ، آئیے ٹیکسٹ فائل میں ڈیٹا لکھنے پر تبادلہ خیال کریں اور اس کے بعد ، ہم ٹیکسٹ فائلوں سے ڈیٹا پڑھنے پر تبادلہ خیال کریں گے۔

ٹیکسٹ فائلیں لکھنا۔
ڈیٹا کو مختلف طریقوں سے فائل میں لکھا جا سکتا ہے:

  • دائیں زاویہ بریکٹ یا زیادہ سے زیادہ نشان (>) استعمال کرکے
  • ڈبل رائٹ اینگل بریکٹ (>>) استعمال کرکے
  • ٹی کمانڈ استعمال کرکے۔

ڈیٹا لکھنے کے لیے دائیں اینجل بریکٹ سائن (>)۔
یہ ٹیکسٹ فائل میں ڈیٹا لکھنے کا سب سے عام طریقہ ہے۔ ہم ڈیٹا لکھتے ہیں اور پھر> سائن لگاتے ہیں۔ > سائن ٹیکسٹ فائل کی طرف اشارہ کرتا ہے جہاں ہمیں ڈیٹا اسٹور کرنا ہوتا ہے۔ تاہم ، یہ فائل کو نہیں جوڑتا ہے اور فائل کا پچھلا ڈیٹا مکمل طور پر نئے ڈیٹا سے بدل جاتا ہے۔

#!/bin/bash
#یوزر ٹیکسٹ فائل کا نام داخل کرتا ہے۔
پڑھیں -پی 'فائل کا نام درج کریں:'فائل
#یوزر ٹیکسٹ فائل میں سٹور کرنے کے لیے ڈیٹا داخل کرتا ہے۔
پڑھیں -پی 'فائل میں داخل ہونے کے لیے ڈیٹا لکھیں:'ڈیٹا
#ٹیکسٹ فائل میں ڈیٹا اسٹور کرنا۔
#> فائل کے نام کی طرف اشارہ کرتا ہے۔
باہر پھینک دیا $ ڈیٹا۔ > $ فائل۔


ڈیٹا لکھنے کے لیے دائیں اینجل بریکٹ سائن (>>)۔
>> فائل کو کسی بھی کمانڈ کی آؤٹ پٹ کو محفوظ کرنے کے لیے استعمال کیا جاتا ہے۔ مثال کے طور پر ، ls -al کمانڈ کسی خاص ڈائریکٹری میں فائل کا مواد اور اجازت دکھاتی ہے۔ >> آؤٹ پٹ کو فائل میں محفوظ کرے گا۔

#!/bin/bash
#یوزر ٹیکسٹ فائل کا نام داخل کرتا ہے۔
پڑھیں -پی 'فائل کا نام درج کریں:'فائل
#فائل میں کمانڈ آؤٹ پٹ محفوظ کرنا۔
ایل ایس -کرنے کے لئے >> $ فائل۔



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

#!/bin/bash
#یوزر ٹیکسٹ فائل کا نام داخل کرتا ہے۔
پڑھیں -پی 'فائل کا نام درج کریں:'فائل
#کمانڈ کا استعمال کرتے ہوئے فائل میں کمانڈ آؤٹ پٹ کو محفوظ کرنا۔
ایل ایس -کرنے کے لئے | ٹی $ فائل۔


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

#!/bin/bash
#یوزر ٹیکسٹ فائل کا نام داخل کرتا ہے۔
پڑھیں -پی 'فائل کا نام درج کریں:'فائل
#کمانڈ کا استعمال کرتے ہوئے فائل میں کمانڈ آؤٹ پٹ کو محفوظ کرنا۔
ایل ایس -کرنے کے لئے | ٹی -کو $ فائل۔


ٹیکسٹ فائلوں کو پڑھنا۔
کی کیٹ کمانڈ کا استعمال فائل سے ڈیٹا پڑھنے کے لیے کیا جاتا ہے۔ یہ اس مقصد کے لیے سب سے زیادہ استعمال کیا جاتا ہے۔ یہ صرف ٹرمینل پر ٹیکسٹ فائل کے مواد کو پرنٹ کرتا ہے۔ آئیے فائل کا مواد یا ڈیٹا ٹرمینل پر پرنٹ کرتے ہوئے کیٹ کمانڈ.

#!/bin/bash
#یوزر ٹیکسٹ فائل کا نام داخل کرتا ہے۔
پڑھیں -پی 'فائل کا نام درج کریں:'فائل
#ٹیکسٹ فائل سے ڈیٹا پڑھنا۔
کیٹ $ فائل۔


5. bash سے دوسرے پروگرام چلا رہے ہیں۔
باش باش اسکرپٹ سے دوسرے پروگرام چلانے کا اختیار دیتا ہے۔ ہم باش سے دوسرے پروگرام چلانے کے لیے exec کمانڈ استعمال کرتے ہیں۔ exec کمانڈ پچھلے عمل کو موجودہ عمل سے بدل دیتی ہے اور موجودہ پروگرام لانچ کرتی ہے۔ مثال کے طور پر ، ہم بش اسکرپٹ سے نینو ، جیڈٹ ، یا ویم ایڈیٹر کھول سکتے ہیں۔

#!/bin/bash
#بش سے نینو ایڈیٹر چل رہا ہے۔
عملدرآمد نینو

#!/bin/bash
#بش سے gedit چل رہا ہے۔
عملدرآمدgedit

اسی طرح ، ہم براؤزر ایپلی کیشن کو بش سے بھی چلا سکتے ہیں۔ آئیے موزیلا فائر فاکس براؤزر چلائیں۔

#!/bin/bash
#فائر فاکس چل رہا ہے۔
عملدرآمدفائر فاکس


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

6. کمانڈ لائن پروسیسنگ
کمانڈ لائن پروسیسنگ سے مراد ٹرمینل پر درج ڈیٹا کی پروسیسنگ ہے۔ کمانڈ لائن ڈیٹا کو کئی مقاصد کے لیے پروسیس کیا جاتا ہے جیسے کہ صارف کے ان پٹ کو پڑھنا ، کمانڈز کو کم کرنا اور دلائل کو پڑھنا۔ پہلے ، ہم نے ریڈ کمانڈ پر تبادلہ خیال کیا ہے۔ کمانڈ لائن پروسیسنگ کے لیے ریڈ کمانڈ بھی استعمال ہوتی ہے۔ اس سیکشن میں ، ہم کمانڈ لائن دلائل کی کارروائی پر تبادلہ خیال کریں گے۔ بش میں ، ہم ان دلائل پر کارروائی کر سکتے ہیں جو ٹرمینل پر پاس یا لکھے گئے ہیں۔ دلائل پر اسی طرح عمل کیا جاتا ہے جس طرح وہ گزر جاتے ہیں۔ لہذا ، اسے پوزیشنل پیرامیٹرز کہا جاتا ہے۔ دوسری پروگرامنگ زبانوں کے برعکس ، بش میں دلائل کی ترتیب 1 سے شروع ہوتی ہے۔ ڈالر کا نشان ($) دلائل کو پڑھنے کے لیے استعمال ہوتا ہے۔ مثال کے طور پر ، $ 1 پہلی دلیل پڑھتا ہے ، $ 2 دوسری دلیل پڑھتا ہے ، اور اسی طرح۔ دلائل کو مختلف وجوہات کی بنا پر تجزیہ کیا جا سکتا ہے جیسے صارف سے ان پٹ لینا۔

#!/bin/bash
باہر پھینک دیا 'اپنا نام درج کریں'
#پہلی دلیل پر کارروائی
باہر پھینک دیا 'پہلا نام:' $ 1۔
#دوسری دلیل پر کارروائی
باہر پھینک دیا 'درمیانی نام:'$ 2۔
#تیسری دلیل پر عملدرآمد
باہر پھینک دیا 'آخری نام:' $ 3۔
باہر پھینک دیا 'پورا نام:' $ 1۔ $ 2۔ $ 3۔


ٹرمینل سے ڈیٹا پڑھنا پڑھنا ، اور دلائل تجزیہ کرنا کمانڈ لائن پروسیسنگ کی بہترین مثالیں ہیں۔

باش کی تاریخ اور دوسرے گولوں کے ساتھ موازنہ۔

باش اب یونیکس اور لینکس پر مبنی نظام کا لازمی جزو ہے۔ بورن شیل ابتدائی طور پر اسٹیفن بورن نے تیار کیا تھا۔ اسٹیفن بورن شیل کا مطلوبہ مقصد اس وقت پہلے سے موجود شیلوں کی حدود کو دور کرنا تھا۔ بورن شیل سے پہلے ، UNIX نے تھامسن شیل متعارف کرایا۔ تاہم ، تھامسن شیل پروسیسنگ اسکرپٹ میں بہت محدود تھا۔ صارفین اسکرپٹ کی کافی مقدار کو چلانے کے قابل نہیں تھے۔ تھامسن شیل کی ان تمام حدود کو دور کرنے کے لیے بورن شیل متعارف کرایا گیا۔ یہ بیلز لیب میں تیار کیا گیا تھا۔ 1989 میں ، برائن فاکس نے کئی دوسری خصوصیات کو شامل کرکے بورن شیل میں انقلاب برپا کیا اور اسے بورن اگین شیل (BASH) کا نام دیا۔

خول کا نام۔ سال۔ پلیٹ فارم تفصیل BASH کے ساتھ موازنہ
تھامسن شیل۔ 1971۔ UNIX اسکرپٹ کی آٹومیشن محدود تھی۔ صارف صرف تھوڑی سی سکرپٹنگ کر سکتا ہے۔ BASH تھامسن شیل کی حدود پر قابو پاتا ہے اور صارف بڑے سکرپٹ لکھ سکتا ہے۔
بورن شیل۔ 1977۔ UNIX یہ ہمیں بڑی تعداد میں سکرپٹ لکھنے اور چلانے کی اجازت دیتا ہے۔ بورن شیل کمانڈ ایڈیٹر اور زیادہ تعداد میں شارٹ کٹ سہولیات فراہم نہیں کرتا۔ BASH کمانڈ ایڈیٹر کے ساتھ ڈیزائن میں بہتری فراہم کرتا ہے۔
POSIX شیل۔ 1992۔ پوکس۔ POSIX شیل پورٹیبل ہے۔ یہ بہت سے شارٹ کٹ اور جاب کنٹرول فراہم کرتا ہے۔ BASH ان کاموں کو انجام دینے کے لیے مشہور ہے جن میں پورٹیبلٹی کی ضرورت نہیں ہے۔
زیڈ شیل۔ 1990۔ UNIX زیڈ شیل خصوصیت سے مالا مال ہے۔ یہ ایک بہت طاقتور شیل ہے اور کمانڈ آٹو تکمیل ، ہجے کی اصلاح ، اور آٹوفل جیسی خصوصیات مہیا کرتا ہے۔ BASH میں کچھ خصوصیات کا فقدان ہے جو Z شیل کے ذریعہ فراہم کی گئی ہیں۔

نتیجہ

BASH ایک بہت طاقتور ٹول ہے جو ہمیں کمانڈ اور سکرپٹ چلانے کی اجازت دیتا ہے۔ BASH سکرپٹ ہمیں روزانہ کے کاموں اور احکامات کو خودکار کرنے کی اجازت دیتا ہے۔ BASH اسکرپٹ متعدد کمانڈز کا مجموعہ ہے۔ BASH فائل .sh توسیع کے ساتھ ختم ہوتی ہے۔ BASH اسکرپٹ چلانے سے پہلے ، ہمیں فائل کی اجازتوں کو اپ ڈیٹ کرنے کی ضرورت ہے اور ہمیں .sh فائل کو قابل عمل اجازت فراہم کرنے کی ضرورت ہے۔ یہ مضمون سادہ مثالوں اور اہم اسباق کی مدد سے BASH اور BASH اسکرپٹنگ کی وضاحت کرتا ہے۔ مزید یہ کہ یہ BASH کی تاریخ کو بیان کرتا ہے اور اس کی خصوصیات کا موازنہ مختلف دیگر طاقتور خولوں سے کرتا ہے۔