لینکس میں شیل اسکرپٹ چلانے کے دو طریقے ہیں۔ آپ استعمال کر سکتے ہیں:
bash script.sh
یا آپ شیل اسکرپٹ کو اس طرح چلا سکتے ہیں:
ونڈوز کے لیے بہترین ٹرمینل ایمولیٹر
./script.sh
یہ شاید آسان ہے ، لیکن یہ زیادہ وضاحت نہیں کرتا ہے۔ پریشان نہ ہوں ، میں مثالوں کے ساتھ ضروری وضاحت کروں گا تاکہ آپ سمجھ سکیں کہ شیل اسکرپٹ چلاتے ہوئے ایک مخصوص نحو دیے گئے فارمیٹ میں کیوں استعمال کیا جاتا ہے۔
میں چیزوں کو ہر ممکن حد تک پیچیدہ بنانے کے لیے اس ایک لائن شیل اسکرپٹ کا استعمال کرنے جا رہا ہوں:
[email protected] :~/Scripts$ cat hello.sh echo 'Hello World!'
طریقہ 1: شیل کی دلیل کے طور پر فائل کو پاس کر کے شیل اسکرپٹ کو چلانا۔
پہلے طریقے میں شیل پر دلیل کے طور پر اسکرپٹ فائل کا نام شامل کرنا شامل ہے۔
اس بات پر غور کرتے ہوئے کہ bash ڈیفالٹ شیل ہے ، آپ اس طرح اسکرپٹ چلا سکتے ہیں:
bash hello.sh
کیا آپ اس طریقہ کار کا فائدہ جانتے ہیں؟ آپ کے سکرپٹ کو عملدرآمد کی اجازت کی ضرورت نہیں ہے۔ . تیز اور آسان کاموں کے لیے بہت آسان۔

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

بطور اسکرپٹ ٹیکسٹ فائل چلانا۔
اس نقطہ نظر میں ، آپ نے واضح طور پر بتایا کہ آپ bash کو بطور ترجمان استعمال کرنا چاہتے ہیں۔ سکرپٹ کے لیے
شیل صرف ایک پروگرام ہے اور بش اس کا نفاذ ہے۔ اس طرح کے دوسرے گولے پروگرام ہیں جیسے ksh ، zsh ، وغیرہ اگر آپ کے پاس دوسرے گولے نصب ہیں تو آپ اسے bash کے بجائے بھی استعمال کر سکتے ہیں۔
مثال کے طور پر ، میں نے zsh انسٹال کیا اور اسی اسکرپٹ کو چلانے کے لیے استعمال کیا:

Zsh کے ساتھ شیل اسکرپٹ پر عمل کریں۔
تجویز کردہ پڑھیں:

دوسری ڈائریکٹری میں شیل اسکرپٹ چل رہا ہے۔
اس سے پہلے/ اسکرپٹ اہم ہے (جب آپ اسکرپٹ جیسی ڈائریکٹری میں ہوں)

جب آپ ایک ہی ڈائریکٹری میں ہوں تو آپ اسکرپٹ کا نام کیوں استعمال نہیں کرسکتے ہیں؟ اس کی وجہ یہ ہے کہ آپ کے لینکس سسٹم ایگزیکیوٹیبلز کو کچھ منتخب ڈائریکٹریوں میں چلانے کے لیے تلاش کرتے ہیں جو PATH متغیر میں متعین ہیں۔
میرے سسٹم کے لیے PATH متغیر کی قدر یہ ہے:
[email protected] :~$ echo $PATH /home/abhishek/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
اس کا مطلب یہ ہے کہ درج ذیل ڈائریکٹریوں میں سے کسی ایک میں عملدرآمد کی اجازت والی کوئی بھی فائل سسٹم میں کہیں سے بھی چلائی جا سکتی ہے۔
- /home/abhishek/.local/bin
- /usr/local/sbin
- /usr/local/bin
- /usr/sbin
- /usr/bin
- /sbin
- /am
- /usr/کھیل
- /usr/local/games
- /سنیپ/بن۔
لینکس کمانڈز جیسے بائنریز یا قابل عمل فائلیں جیسے ls ، cat وغیرہ ان ڈائریکٹریوں میں سے ایک میں واقع ہیں۔ یہی وجہ ہے کہ آپ ان کمانڈز کو اپنے سسٹم پر کہیں سے بھی صرف ان کے ناموں کے استعمال سے چلا سکتے ہیں۔ دیکھیں ، ls کمانڈ /usr /bin ڈائریکٹری میں واقع ہے۔

جب آپ مطلق یا متعلقہ راستے کے بغیر اسکرپٹ کی وضاحت کرتے ہیں ، تو اسے PATH متغیر میں بیان کردہ ڈائریکٹریوں میں نہیں مل سکتا ہے۔
زیادہ تر شیل اسکرپٹس میں #کیوں ہوتا ہے؟ /bin/bash شیل اسکرپٹس کے آغاز میں؟
یاد رکھیں کہ میں نے کیسے بتایا کہ شیل صرف ایک پروگرام ہے اور گولوں کے مختلف نفاذ ہیں۔
ایڈوب فلیش پلیئر اپ ڈیٹ پاپ اپس کو کیسے روکا جائے۔
جب آپ #استعمال کرتے ہیں! /bin/bash ، آپ وضاحت کر رہے ہیں کہ سکرپٹ بطور مترجم چلنا ہے۔ اگر آپ ایسا نہیں کرتے ہیں اور اسکرپٹ کو ./script.sh انداز میں چلاتے ہیں تو ، یہ عام طور پر جو بھی شیل آپ چلا رہے ہیں اس کے ساتھ چلایا جاتا ہے۔
کیا اس سے فرق پڑتا ہے؟ یہ کر سکتا تھا۔ ملاحظہ کریں ، زیادہ تر شیل نحو ہر قسم کے شیل میں عام ہے لیکن کچھ مختلف ہو سکتے ہیں۔
مثال کے طور پر ، array رویہ bash اور zsh شیلوں میں مختلف ہے۔ zsh میں ، سرنی انڈیکس 0 کے بجائے 1 سے شروع ہوتا ہے۔

بش بمقابلہ Zsh
#کا استعمال کرتے ہوئے! /bin/bash اس بات کی نشاندہی کرتا ہے کہ اسکرپٹ باش شیل اسکرپٹ ہے اور اسے بش کے ساتھ بطور مترجم چلایا جانا چاہیے قطع نظر اس نظام کے جو شیل استعمال ہو رہا ہے۔ اگر آپ zsh مخصوص نحو استعمال کر رہے ہیں تو ، آپ #شامل کرکے اس کی نشاندہی کر سکتے ہیں کہ یہ zsh اسکرپٹ ہے! /bin/zsh اسکرپٹ کی پہلی لائن کے طور پر۔
#کے درمیان خلا! /bin/bash کوئی فرق نہیں پڑتا۔ آپ #!/bin/bash بھی استعمال کر سکتے ہیں۔
کیا یہ مددگار تھا؟
مجھے امید ہے کہ اس مضمون نے آپ کے لینکس علم میں اضافہ کیا ہے۔ اگر آپ کے پاس ابھی بھی سوالات یا تجاویز ہیں تو براہ کرم ایک تبصرہ کریں۔
ماہر صارفین اب بھی اس مضمون کو ان چیزوں کے بارے میں منتخب کرسکتے ہیں جن سے میں محروم رہ گیا ہوں۔ لیکن اس طرح کے ابتدائی موضوعات میں مسئلہ یہ ہے کہ معلومات کا صحیح توازن تلاش کرنا اور بہت زیادہ یا بہت کم تفصیلات سے بچنا آسان نہیں ہے۔
اگر آپ بش سکرپٹ سیکھنے میں دلچسپی رکھتے ہیں تو ہمارے پاس ہے۔ پوری باش بیگنر سیریز۔ ہماری sysadmin پر مبنی ویب سائٹ پر۔ لینکس ہینڈ بک۔ . اگر آپ چاہیں تو آپ بھی کر سکتے ہیں۔ لینکس ہینڈ بک کو سپورٹ کرنے کے لیے اضافی مشقوں کے ساتھ ای بک خریدیں۔ .
جیسا کہ آپ نے پڑھا ہے؟ براہ کرم اسے دوسروں کے ساتھ شیئر کریں۔