30 بش اسکرپٹ انٹرویو سوالات اور جوابات۔

30 Bash Script Interview Questions



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

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

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







#02۔ باش سکرپٹ استعمال کرنے کے کیا فوائد ہیں؟

باش سکرپٹ کے بہت سے فوائد ہیں جو ذیل میں بیان کیے گئے ہیں۔



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

#03۔ بش سکرپٹ کے نقصانات کا ذکر کریں۔

بش سکرپٹ کے کچھ نقصانات ذیل میں بیان کیے گئے ہیں:



  • یہ دوسری زبانوں کے مقابلے میں سست کام کرتا ہے۔
  • نامناسب اسکرپٹ پورے عمل کو نقصان پہنچا سکتا ہے اور ایک پیچیدہ خرابی پیدا کر سکتا ہے۔
  • یہ ایک بڑی اور پیچیدہ ایپلی کیشن تیار کرنے کے لیے موزوں نہیں ہے۔
  • اس میں دیگر معیاری پروگرامنگ زبانوں کے مقابلے میں کم ڈیٹا ڈھانچہ ہوتا ہے۔

#04۔ بش میں کس قسم کے متغیرات استعمال ہوتے ہیں؟

بش اسکرپٹ میں دو قسم کے متغیرات استعمال کیے جا سکتے ہیں۔ یہ ہیں:

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

`set` ،` env`۔ اور ` printenv نظام کے متغیرات کی فہرست پرنٹ کرنے کے لیے کمانڈ استعمال کیے جا سکتے ہیں۔

مثال:





#!/bin/bash
# پرنٹنگ سسٹم متغیرات

#پرش بش شیل کا نام۔
باہر پھینک دیا $ BASH

# بش شیل ورژن پرنٹ کریں۔
باہر پھینک دیا $ BASH_VERSION۔

# پرنٹ ہوم ڈائریکٹری کا نام۔
باہر پھینک دیا $ HOME۔

صارف کی وضاحت شدہ متغیر۔

وہ متغیرات جو صارفین تخلیق کرتے ہیں اور ان کی دیکھ بھال کرتے ہیں انہیں صارف کے متعین کردہ متغیر کہا جاتا ہے۔ انہیں مقامی متغیر بھی کہا جاتا ہے۔ اس قسم کے متغیرات کو چھوٹے اور بڑے یا دونوں بڑے اور چھوٹے حروف کا استعمال کرکے اعلان کیا جاسکتا ہے۔ لیکن بہتر یہ ہے کہ متغیرات کو سسٹم متغیر سے الگ کرنے کے لیے تمام بڑے حروف کے استعمال سے گریز کیا جائے۔
مثال:

#!/bin/bash

ایک پر=100۔
باہر پھینک دیا $ num

#05۔ بش میں متغیرات کا اعلان اور حذف کیسے کریں؟

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



r ، -i ، -a ، -A ، -l ، -u ، -t اور -ایکس اختیارات کے ساتھ استعمال کیا جا سکتا ہے۔ اعلان مختلف ڈیٹا کی اقسام کے ساتھ متغیر کا اعلان کرنے کا حکم۔

مثال:

#!/bin/bash

#کسی بھی قسم کے بغیر متغیر کا اعلان کریں۔
ایک پر=10۔

#قیمتیں مل جائیں گی لیکن شامل نہیں کی جائیں گی۔
نتیجہ=$ num+بیس
باہر پھینک دیا $ نتیجہ۔

#عدد کی قسم کے ساتھ متغیر کا اعلان کریں۔
اعلان -میں ایک پر=10۔

#قیمتیں شامل کی جائیں گی۔
اعلان -میں نتیجہ= نمبر+بیس
باہر پھینک دیا $ نتیجہ۔

سیٹ نہیں کمانڈ کسی بھی bash متغیر کو ہٹانے کے لیے استعمال کیا جاتا ہے۔ استعمال کرنے کے بعد متغیر ناقابل رسائی یا غیر متعین ہو جائے گا۔ سیٹ نہیں کمانڈ.

مثال:

#!/bin/bash

p='لینکس اشارہ'
باہر پھینک دیا $ str
سیٹ نہیں $ str
باہر پھینک دیا $ str

#06۔ بش اسکرپٹ میں تبصرے کیسے شامل کریں؟

باش سکرپٹ میں سنگل لائن اور ملٹی لائن کمنٹس استعمال کیے جا سکتے ہیں۔ ‘‘ # 'علامت سنگل لائن تبصرہ کے لیے استعمال کیا جاتا ہے۔ '<<’ ایک ڈیلیمیٹر کے ساتھ علامت اور ':' سنگل (') کے ساتھ ملٹی لائن تبصرہ شامل کرنے کے لیے استعمال کیا جاتا ہے۔

مثال:

#!/bin/bash
#متن پرنٹ کریں [سنگل لائن تبصرہ]
باہر پھینک دیا 'بش پروگرامنگ'
< رقم کا حساب لگائیں۔
دو نمبروں میں سے [ملٹی لائن تبصرہ]
تبصرہ شامل کریں

ایک پر=25۔+35۔
باہر پھینک دیا $ num
:'
دو کو یکجا کریں۔
سٹرنگ ڈیٹا [ملٹی لائن تبصرہ]
'

سٹرنگ='ہیلو'
باہر پھینک دیا $ سٹرنگ'دنیا'

#07۔ آپ بش اسکرپٹ میں ڈور کو کیسے جوڑ سکتے ہیں؟

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

مثال:

#!/bin/bash
#متغیرات کو شروع کریں۔
str1='پی ایچ پی'
str2='باش'
str3='پرل'

# جگہ کے ساتھ سٹرنگ پرنٹ کریں۔
باہر پھینک دیا $ str1۔ $ str2۔ $ str3۔

#تمام متغیرات کو یکجا کریں اور دوسرے متغیر میں اسٹور کریں۔
p='$ str1۔،$ str2۔اور$ str3۔'

سٹرنگ کی موجودہ قیمت کے ساتھ دوسرے سٹرنگ ڈیٹا کو یکجا کریں۔
str + ='سکرپٹ زبانیں ہیں'

#تار پرنٹ کریں۔
باہر پھینک دیا $ str

#08۔ bash میں آؤٹ پٹ پرنٹ کرنے کے لیے کون سے کمانڈ استعمال کیے جاتے ہیں؟

`گونج`۔ اور `printf` bash میں آؤٹ پٹ پرنٹ کرنے کے لیے کمانڈ استعمال کیے جا سکتے ہیں۔ `گونج `کمانڈ سادہ آؤٹ پٹ اور پرنٹ کرنے کے لیے استعمال ہوتی ہے۔ `printf` کمانڈ فارمیٹ شدہ آؤٹ پٹ پرنٹ کرنے کے لیے استعمال ہوتی ہے۔

مثال:

#!/bin/bash

#متن پرنٹ کریں۔
باہر پھینک دیا 'LinuxHint میں خوش آمدید'
سائٹ='linuxhint.com'
#فارمیٹ شدہ متن پرنٹ کریں۔
پرنٹ ایف ٪ s ایک مشہور بلاگ سائٹ ہے۔n' $ سائٹ

#09۔ بش میں ٹرمینل سے ان پٹ کیسے لیں؟

'پڑھیں' کمانڈ بش سکرپٹ میں ٹرمینل سے ان پٹ لینے کے لیے استعمال ہوتا ہے۔

مثال:

#!/bin/bash
#پیغام پرنٹ کریں۔
باہر پھینک دیا 'اپنا نام درج کریں'
#صارف سے ان پٹ لیں۔
پڑھیںنام
# دیگر نام کے ساتھ $ name کی قیمت پرنٹ کریں۔
باہر پھینک دیا 'آپ کا نام ہے$ نام'

#10۔ bash میں کمانڈ لائن دلائل کا استعمال کیسے کریں؟

کمانڈ لائن دلائل پڑھتے ہیں۔ $ 1 ، $ 2 ، $ 3… $ n۔ متغیرات bash اسکرپٹ کو چلاتے وقت کمانڈ لائن دلیل کی اقدار ٹرمینل میں فراہم کی جاتی ہیں۔ $ 1 پہلی دلیل پڑھنے کے لیے استعمال کیا جاتا ہے ، $ 2۔ دوسری دلیل وغیرہ پڑھنے کے لیے استعمال کیا جاتا ہے۔

مثال:

#!/bin/bash
#چیک کریں کوئی دلیل فراہم کی گئی ہے یا نہیں۔
اگر [[ $ # -ایک ]]؛پھر
باہر پھینک دیا 'کوئی دلیل نہیں دی جاتی۔'
باہر نکلیں
ہو
#پہلی دلیل کی قیمت کو محفوظ کریں۔
رنگ=$ 1
# دلیل کو دوسرے تار کے ساتھ پرنٹ کریں۔
پرنٹ ایف 'آپ کا پسندیدہ رنگ٪ s ہے۔n' $ رنگ

#11۔ کیا باش ایک کمزور ٹائپ شدہ زبان ہے؟ کیوں؟

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

مثال:

#!/bin/bash

#ڈیٹا کی قسم $ myVar بطور ڈیفالٹ سٹرنگ ہے۔
myVar=29۔

# متغیر پرنٹ کریں۔
باہر پھینک دیا $ myVar

# 67 کی قیمت کے ساتھ عدد متغیر $ نمبر کا اعلان کریں۔
اعلان -میں نمبر=67۔

#متغیر پرنٹ کریں۔
باہر پھینک دیا $ نمبر

# اعداد کے متغیر میں سٹرنگ ڈیٹا تفویض کریں۔ مندرجہ ذیل لائن پیدا کرے گی۔
# نحو کی خرابی اور $ number کی قیمت نہیں بدلے گی۔
نمبر='مجھے باش پسند ہے'
باہر پھینک دیا $ نمبر

#12۔ فائل کی ہر لائن سے دوسرا لفظ یا کالم کیسے پڑھیں؟

فائل کے دوسرے لفظ یا کالم کو باش سکرپٹ میں آسانی سے مختلف bash کمانڈز کا استعمال کرتے ہوئے پڑھا جا سکتا ہے ، جیسے `awk` ،` sed` وغیرہ۔ `awk` مندرجہ ذیل مثال میں دکھایا گیا ہے.
مثال: فرض کریں ، course.txt فائل میں درج ذیل مواد موجود ہے اور ہم نے اس فائل کی ہر سطر کا صرف دوسرا لفظ چھاپا ہے۔

CSE201 جاوا پروگرامنگ۔
CSE303 ڈیٹا سٹرکچر
CSE408 یونکس پروگرامنگ۔#!/bin/bash
# درج ذیل سکرپٹ ہر لائن کا دوسرا لفظ course.txt فائل سے چھاپے گا۔
# کیٹ کمانڈ کی آؤٹ پٹ awk کمانڈ کو منتقل ہو جائے گی جو دوسرا لفظ پڑھے گی۔
ہر لائن کا #
باہر پھینک دیا 'کیٹcourse.txt| عجیب '{پرنٹ $ 2}''

#13۔ bash میں array variable کا اعلان اور ان تک رسائی کیسے حاصل کی جائے؟

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

مثال:

#!/bin/bash

# ایک سادہ عددی صف کا اعلان کریں۔
arr1=(CodeIgniter Laravel ReactJS)

# $ arr1 کی پہلی عنصر کی قیمت پرنٹ کریں۔
باہر پھینک دیا $ {arr1 [0] {

# ڈیکلیئر کمانڈ کا استعمال کرتے ہوئے ایک عددی صف کا اعلان کریں۔
اعلان -کو arr2=(HTML CSS جاوا اسکرپٹ۔)

# $ arr2 کی دوسری عنصر کی قیمت پرنٹ کریں۔
باہر پھینک دیا $ {arr2 [1]}

# اعلان بیان کا استعمال کرتے ہوئے ایک ایسوسی ایٹو صف کا اعلان کریں۔
اعلان -تو arr3=( [فریم ورک]= لاراویل۔[سی ایم ایس۔]= ورڈپریس۔[کتب خانہ]= JQuery)

# تیسرے عنصر کی قیمت $ arr3 پرنٹ کریں۔
باہر پھینک دیا $ {arr3 [Library]}

کسی صف کے تمام عناصر تک کسی بھی لوپ یا '*' علامت کو بطور صف اشاریہ استعمال کرکے حاصل کیا جاسکتا ہے۔

#14۔ bash میں مشروط بیانات کو کیسے استعمال کیا جا سکتا ہے؟

زیادہ تر پروگرامنگ زبانوں میں سب سے عام مشروط بیان ہے۔ if-elseif-else بیان کا نحو۔ if-elseif-else بش میں بیان دیگر پروگرامنگ زبانوں سے تھوڑا سا مختلف ہے۔ 'اگر' بیش سکرپٹ اور ہر قسم کے بیان کو دو طرح سے بیان کیا جا سکتا ہے۔ 'اگر' بلاک کے ساتھ بند ہونا ضروری ہے 'ہو' . 'اگر' بیان کو دوسرے پروگرامنگ زبانوں کی طرح تیسرے بریکٹ یا پہلے بریکٹ سے بیان کیا جا سکتا ہے۔

نحو:
TO.

اگر [حالت]؛
پھر
بیانات
ہو

ب

اگر [حالت]؛پھر
بیانات
اور
بیان
ہو

سی۔

اگر [حالت]؛پھر
بیان
ایلف[حالت]؛پھر
بیان
….
اور
بیان n
ہو

مثال:

#!/bin/bash

# $ n کو ایک قیمت تفویض کریں۔
n=30۔
# چیک کریں $ n 100 سے زیادہ ہے یا نہیں۔
اگر [ $ n -جی ٹی 100۔ ]؛پھر
باہر پھینک دیا '$ n100 سے کم ہے
# $ 50 سے زیادہ آئی ڈی چیک کریں یا نہیں۔
ایلف [ $ n -جی ٹی پچاس ]؛پھر
باہر پھینک دیا '$ n50 سے کم ہے
اور
باہر پھینک دیا '$ n50 سے کم ہے
ہو

#15۔ بش میں اقدار کا موازنہ کیسے کریں؟

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

سٹرنگ موازنہ انٹیجر کوماریسن۔ تفصیل
== -ایک یہ مساوات کی جانچ کے لیے استعمال ہوتا ہے۔
! = -پیدا ہونا یہ عدم مساوات کی جانچ کے لیے استعمال ہوتا ہے۔
< -لٹ یہ استعمال کیا جاتا ہے کہ پہلی قیمت دوسری قیمت سے کم ہے یا نہیں۔
> -جی ٹی یہ استعمال کیا جاتا ہے کہ پہلی قیمت دوسری قیمت سے زیادہ ہے یا نہیں۔
<= - یہ استعمال کیا جاتا ہے کہ چیک کریں کہ پہلی قیمت دوسری قدر سے کم ہے یا نہیں۔
> = -دینا یہ استعمال کیا جاتا ہے کہ چیک کریں کہ پہلی قیمت دوسری قدر سے زیادہ ہے یا نہیں۔

مثال:

#!/bin/bash
# $ n شروع کریں۔
n=130۔
یا='بھی'
# $ $ چیک کریں 100 سے زیادہ یا اس کے برابر یا '–ge' کا استعمال نہ کرنا۔
اگر [ $ n -دینا 100۔ ]؛پھر
باہر پھینک دیا '$ n100 سے زیادہ یا اس کے برابر ہے
اور
باہر پھینک دیا '$ n100 سے کم ہے
ہو
# = $ آپریٹر کا استعمال کرتے ہوئے $ n چیک کریں یا عجیب ہے۔
اگر (( $ o=='بھی' ))؛پھر
باہر پھینک دیا 'تعداد برابر ہے'
اور
باہر پھینک دیا 'نمبر عجیب ہے'
ہو

#16۔ bash میں if-ifif-else بیانات کے متبادل کے طور پر کون سا مشروط بیان استعمال کیا جا سکتا ہے؟

'معاملہ' بیان کو متبادل ٹی پی کے طور پر استعمال کیا جا سکتا ہے۔ if-elseif-if بیان کے لیے نحو۔ 'معاملہ' بش سکرپٹ میں بیان سے مختلف ہے۔ سوئچ کیس دیگر پروگرامنگ زبانوں کا بیان۔ 'معاملہ' بلاک کی طرف سے بند ہے 'ایسیک' بش میں بیان. نہیں ' توڑ 'بیان اندر استعمال ہوتا ہے' معاملہ بلاک کو بلاک سے ختم کرنے کے لیے۔

نحو:

معاملہ میں
میچ پیٹرن۔)احکامات؛؛
میچ پیٹرن۔)احکامات؛؛
……
میچ پیٹرن n)احکامات؛؛
ایساک

مثال:

#!/bin/bash
#متغیر $ ٹکٹ کو شروع کریں۔
ٹکٹ=101۔
# $ ٹکٹ کی قیمت کا موازنہ 23 ، 101 اور 503 سے کریں۔
معاملہ $ ٹکٹ میں
2. 3۔)
# پیغام پرنٹ کریں اگر قیمت 23 ہے۔
باہر پھینک دیا 'آپ کو پہلا انعام ملا'؛؛
101۔)
# پیغام پرنٹ کریں اگر قیمت 101 ہے۔
باہر پھینک دیا 'آپ کو دوسرا انعام ملا'؛؛
503۔)
# پیغام پرنٹ کریں اگر قیمت 503 ہے۔
باہر پھینک دیا 'آپ کو تیسرا انعام ملا'؛؛
*)
# پیغام پرنٹ کریں اگر قیمت 23 ، 101 اور 503 سے مماثل نہیں ہے۔
باہر پھینک دیا 'معذرت ، اگلی بار کوشش کریں'
باہر نکلیں ؛؛
ایساک

#17۔ بش میں کون سی مختلف قسم کے لوپس استعمال کیے جا سکتے ہیں؟

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

مثال:

#!/bin/bash
# $ n شروع کریں۔
n=
# لوپ کا استعمال کرتے ہوئے 5-1 کے مربع کا حساب لگائیں۔
جبکہ [ $ n -جی ٹی ]
کیا
مربع= $۔((n*n))
باہر پھینک دیا کا مربع$ nہے$ sqr'
((n--))
ہو گیا

# لوپ کا استعمال کرتے ہوئے 5-1 کے مربع کا حساب لگائیں۔
کے لیے (( میں=؛ میں>؛ میں--))
کیا
مربع= $۔((میں*میں))
باہر پھینک دیا کا مربع$ iہے$ sqr'
ہو گیا

# $ x شروع کریں۔
ایکس=

# لوپ تک استعمال کرتے ہوئے 5-1 کے مربع کا حساب لگائیں۔
تک [ $ x - ]
کیا
مربع= $۔((ایکس*ایکس))
باہر پھینک دیا کا مربع$ xہے$ sqr'
((ایکس--))
ہو گیا

#18۔ سب روٹینز کو کس طرح اعلان کیا جا سکتا ہے اور بش میں بلایا جا سکتا ہے؟

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

مثال:

#!/bin/bash
# متغیر $ x اور $ y شروع کریں جو عالمی ہیں۔
ایکس=10۔
اور=35۔

# فنکشن کا اعلان کریں۔
myFunc() {
# مقامی متغیر $ x کا اعلان کریں۔
مقامی ایکس=پندرہ

# عالمی متغیر $ y دوبارہ تفویض کریں۔
اور=25۔

# $ x اور $ y کی رقم کا حساب لگائیں۔
کے ساتھ۔= $۔((x + y))

# مقامی متغیر ، $ x ، اور عالمی متغیر ، $ y کا مجموعہ پرنٹ کریں۔
باہر پھینک دیا 'کا مجموعہ$ xاور$ yکے برابر$ z'
}

# فنکشن کو کال کریں۔
myFunc

# عالمی متغیرات ، $ x ، اور $ y کا مجموعہ پرنٹ کریں۔
باہر پھینک دیا 'کا مجموعہ$ xاور$ yکے برابر$ z'

#19۔ بش میں سٹرنگ ڈیٹا کا کچھ حصہ کیسے کاٹا اور پرنٹ کیا جائے؟

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

مثال:

#!/bin/bash
# سٹرنگ ویلیو کو $ string میں شروع کریں۔
تار='ازگر سکرپٹ کی زبان'
# سٹرنگ ویلیو کو پوزیشن 7 سے سٹرنگ کے اختتام تک کاٹیں۔
باہر پھینک دیا $ {سٹرنگ: 7}
# پوزیشن 7 سے 9 حروف کی سٹرنگ ویلیو کاٹیں۔
باہر پھینک دیا $ {سٹرنگ: 7: 9}
# سٹرنگ ویلیو کو 17 سے 20 تک کاٹ دیں۔
باہر پھینک دیا $ {سٹرنگ: 17: -4}

#20۔ bash میں ریاضی کے کام کرنے کے کچھ طریقے بتائیں؟

باش میں ریاضی کے کام کئی طریقوں سے کیے جا سکتے ہیں۔ 'let' ، 'expr' ، 'bc' اور ڈبل بریکٹ بش میں ریاضی کے کام کرنے کے سب سے عام طریقے ہیں۔ ان احکامات کا استعمال مندرجہ ذیل مثال میں دکھایا گیا ہے۔

مثال:

#!/bin/bash
# ایکسپریس اور پیرامیٹر توسیع کا استعمال کرکے گھٹاؤ کا حساب لگانا۔
var1= $۔( expr 120۔-100۔ )
# نتیجہ پرنٹ کریں۔
باہر پھینک دیا $ var1۔
# کمانڈ استعمال کرکے اضافے کا حساب لگائیں۔
چلو var2=200۔+300۔
# رزلٹ پرنٹ کریں۔
باہر پھینک دیا $ var2۔
# نتیجہ حاصل کرنے کے لیے 'بی سی' کا استعمال کرتے ہوئے تقسیم کی قدر کا حساب اور پرنٹ کریں۔
# جزوی قدر کے ساتھ۔
باہر پھینک دیا 'پیمانے = 2 44/7 ' | بی سی
# ڈبل بریکٹ کا استعمال کرتے ہوئے ضرب کی قیمت کا حساب لگائیں۔
var3= $۔(( * ))
# نتیجہ پرنٹ کریں۔
باہر پھینک دیا $ var3۔

#21۔ باش کا استعمال کرتے ہوئے ڈائریکٹری موجود ہے یا نہیں اس کی جانچ کیسے کریں؟

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

مثال:

#!/bin/bash
# ڈائرکٹری کو متغیر ، $ path میں راستے کے ساتھ تفویض کریں۔
راستہ='/گھر/اوبنٹو/درجہ حرارت'
# چیک کریں کہ ڈائریکٹری موجود ہے یا نہیں۔
اگر [ -ڈی '$ راستہ۔' ]؛پھر
# ڈائریکٹری موجود ہو تو پیغام پرنٹ کریں۔
باہر پھینک دیا 'ڈائریکٹری موجود ہے'
اور
# ڈائرکٹری موجود نہ ہونے پر پیغام پرنٹ کریں۔
باہر پھینک دیا 'ڈائریکٹری موجود نہیں'
ہو

#22۔ تمام بیانات پر عمل کیے بغیر باز اسکرپٹ کو کیسے ختم کیا جا سکتا ہے؟

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

مثال:

#!/bin/bash

# فائل کا نام متغیر ، $ filename پر شروع کریں۔
فائل کا نام='course.txt'

# -f آپشن استعمال کرکے چیک کریں کہ فائل موجود ہے یا نہیں۔
اگر [ '$ filename' ]؛پھر
# اگر فائل موجود ہو تو پیغام پرنٹ کریں۔
باہر پھینک دیا '$ filenameموجود ہے '
اور
# فائل پرنٹ نہ ہونے کی صورت میں پرنٹ کریں۔
باہر پھینک دیا '$ filenameموجود نہیں '
# اسکرپٹ ختم کریں۔
باہر نکلیں
ہو

# فائل کی لمبائی گنیں اگر فائل موجود ہے۔
لمبائی='ڈبلیو سی -سی $ filename'

# فائل کی لمبائی پرنٹ کریں۔
باہر پھینک دیا کل حروف -$ لمبائی'

#23۔ bash میں بریک اور جاری بیانات کے کیا استعمال ہیں؟

توڑ بیان کسی شرط کی بنیاد پر مکمل تکرار مکمل کیے بغیر لوپ سے ختم کرنے کے لیے استعمال ہوتا ہے۔ جاری رہے ایک شرط پر مبنی کچھ بیانات کو چھوڑنے کے لیے بیان کو لوپ میں استعمال کیا جاتا ہے۔ کے استعمالات۔ توڑ اور جاری رہے بیانات کو مندرجہ ذیل مثال میں بیان کیا گیا ہے۔

مثال:

#!/bin/bash
# لوپ شروع کرنے کے لیے متغیر $ i سے 0 شروع کریں۔
میں=
# لوپ فوٹ کو 10 بار دہرائے گا۔
جبکہ [ $ i - 10۔ ]
کیا
# قیمت میں $ 1 کا اضافہ کریں۔
((میں ++))
# اگر $ i کی قیمت 8 کے برابر ہے تو 'بریک' اسٹیٹمنٹ کا استعمال کرکے لوپ کو ختم کریں۔
اگر [ $ i -ایک ]؛پھر
توڑ؛
ہو
# اگر $ i کی قیمت 6 سے زیادہ ہے تو لوپ کے آخری بیان کو چھوڑ دیں۔
# جاری بیان کا استعمال کرتے ہوئے۔
اگر [ $ i -دینا ]؛پھر
جاری رہے؛
ہو
باہر پھینک دیا i = کی موجودہ قیمت۔$ i'
ہو گیا

# لوپ سے ختم ہونے کے بعد $ i کی قیمت پرنٹ کریں۔
باہر پھینک دیا اب i = کی قدر۔$ i'

#24۔ باش فائل کو قابل عمل کیسے بنایا جائے؟

قابل عمل بش فائلیں استعمال کرکے بنائی جاسکتی ہیں۔ 'چمڈ' کمانڈ. قابل عمل اجازت استعمال کرکے مقرر کی جا سکتی ہے۔ '+ X' میں chmod اسکرپٹ فائل نام کے ساتھ کمانڈ کریں۔ بش فائلوں کو بغیر کسی واضح کے عمل میں لایا جا سکتا ہے۔ 'باز' اس فائل کے لیے عملدرآمد بٹ ترتیب دینے کے بعد کمانڈ کریں۔

مثال:

# عملدرآمد بٹ سیٹ کریں۔
$chmod+ x filename.sh

# قابل عمل فائل چلائیں۔
$./filename.sh

#25۔ کچھ اختیارات کا ذکر کریں جو فائلوں کی جانچ کے لیے استعمال ہوتے ہیں۔

bash to test فائل میں بہت سے آپشن دستیاب ہیں۔ کچھ اختیارات ذیل میں بیان کیے گئے ہیں۔

اختیار تفصیل
یہ فائل کے وجود کو جانچنے کے لیے استعمال کیا جاتا ہے اور یہ ایک باقاعدہ فائل ہے۔
-اور یہ صرف فائل کے وجود کو جانچنے کے لیے استعمال کیا جاتا ہے۔
یہ فائل موجود ہے کو جانچنے کے لیے استعمال کیا جاتا ہے اور اسے پڑھنے کی اجازت ہے۔
-میں یہ فائل موجود ہے کو جانچنے کے لیے استعمال ہوتی ہے اور اسے اجازت لکھنی پڑتی ہے۔
-ایکس یہ فائل موجود ہے کو جانچنے کے لیے استعمال کیا جاتا ہے اور اس پر عملدرآمد کی اجازت ہے۔
-ڈی یہ ڈائریکٹری کے موجود ہونے کی جانچ کے لیے استعمال ہوتا ہے۔
-تھی یہ فائل کے وجود کو جانچنے کے لیے استعمال کیا جاتا ہے اور یہ ایک علامتی ربط ہے۔
-ایس یہ فائل موجود ہے کو جانچنے کے لیے استعمال کیا جاتا ہے اور یہ ایک ساکٹ ہے۔
یہ جانچنے کے لیے استعمال کیا جاتا ہے کہ فائل بلاک ڈیوائس ہے۔
یہ چیک کرنے کے لیے استعمال کیا جاتا ہے کہ فائل صفر نہیں ہے۔
مثال کے طور پر یہ پہلی فائل کا مواد چیک کرنے کے لیے استعمال کیا جاتا ہے دوسری فائل کے مقابلے میں نیا ہے۔ مثال کے طور پر ، file1 -nt file2 اشارہ کرتا ہے کہ file1 file2 سے نیا ہے۔
-وٹ یہ پہلی فائل کا مواد چیک کرنے کے لیے استعمال ہوتا ہے جو دوسری فائل سے پرانا ہے۔ مثال کے طور پر ، file1 -ot file2 اشارہ کرتا ہے کہ file1 file2 سے پرانا ہے۔
-ایف۔ یہ چیک کرنے کے لیے استعمال کیا جاتا ہے کہ دو ہارڈ لنکس ایک ہی فائل کا حوالہ دیتے ہیں۔ مثال کے طور پر ، flink1 -ef flink2 اشارہ کرتا ہے کہ flink1 اور flink2 ہارڈ لنکس ہیں اور دونوں ایک ہی فائل کا حوالہ دیتے ہیں۔

#26۔ 'بی سی' سے کیا مراد ہے اور یہ کمانڈ بش میں کیسے استعمال کیا جا سکتا ہے؟

'بی سی' کی مکمل شکل ہے۔ باش کیلکولیٹر۔ bash میں زیادہ درست طریقے سے ریاضی کے کام انجام دینے کے لیے۔ جزوی حصہ کو خارج کر دیا جاتا ہے اگر کوئی ریاضی کا استعمال بش میں استعمال کرکے کیا جاتا ہے۔ 'سابق' کمانڈ. جزوی حصہ کو استعمال کرکے بھی گول کیا جاسکتا ہے۔ پیمانے کے ساتھ قدر 'بی سی' کمانڈ.

مثال:

#!/bin/bash
# جزوی قدر کے بغیر تقسیم کا حساب لگائیں۔
باہر پھینک دیا 39/7 | بی سی

# مکمل جزوی قیمت کے ساتھ تقسیم کا حساب لگائیں۔
باہر پھینک دیا 39/7 | بی سی -

# اعشاریہ کے بعد تین ہندسوں کے ساتھ تقسیم کا حساب لگائیں۔
باہر پھینک دیا 'پیمانہ = 3 39/7 ' | بی سی

#27۔ آپ bash میں فائل کی ایک خاص لائن کو کیسے پرنٹ کرسکتے ہیں؟

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

مثال:

#!/bin/bash

# NR متغیر کے ساتھ `awk` کمانڈ استعمال کرکے فائل سے پہلی لائن پڑھیں اور محفوظ کریں۔
لائن 1='عجیب '{اگر (NR == 1) $ 0} پرنٹ کریں'course.txt'
# لائن پرنٹ کریں۔
باہر پھینک دیا $ 1 لائن۔

# فائل کی دوسری لائن کو 'sed' کمانڈ کے ساتھ -n آپشن کے ذریعے پڑھیں۔
لائن 2='sed 2p course.txt'
# لائن پرنٹ کریں۔
باہر پھینک دیا $ 2 لائن۔

# -n آپشن کے ساتھ `tail` کمانڈ استعمال کرکے فائل کی آخری لائن پڑھیں۔
لائن 3='دم course.txt'
# فائل پرنٹ کریں۔
باہر پھینک دیا $ لائن 3۔

#28۔ IFS کیا ہے؟

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

مثال:

#!/bin/bash
# Declare ':' متن کو تقسیم کرنے کے لیے حد بندی کے طور پر۔
آئی ایف ایس=':'
# ٹیکسٹ ڈیٹا کو ':' کے ساتھ $ ٹیکسٹ میں تفویض کریں۔
متن='سرخ: سبز: بلیو'
# فار لوپ IFS پر مبنی متن کو تقسیم کرنے کے بعد ہر لفظ کو پڑھے گا۔
کے لیےگھنٹےمیں $ متن؛کیا
# لفظ پرنٹ کریں۔
باہر پھینک دیا $ گھنٹے
ہو گیا

#29۔ سٹرنگ ڈیٹا کی لمبائی کیسے معلوم کی جائے؟

'expr' ، 'wc' اور 'اوک' bash میں سٹرنگ ڈیٹا کی لمبائی معلوم کرنے کے لیے کمانڈ استعمال کیے جا سکتے ہیں۔ 'سابق' اور 'اوک' احکامات کا استعمال لمبائی اختیار ، 'ڈبلیو سی' کمانڈ استعمال کرتا ہے '-C' تار کی لمبائی گننے کا آپشن۔

مثال:

مندرجہ بالا احکامات کے استعمال درج ذیل اسکرپٹ میں دکھائے گئے ہیں۔

#!/bin/bash
# لمبائی کی گنتی `expr` length آپشن کا استعمال کرتے ہوئے۔
باہر پھینک دیا 'exprلمبائی'مجھے پی ایچ پی پسند ہے''
# wc` کمانڈ کا استعمال کرتے ہوئے لمبائی گنیں۔
باہر پھینک دیا 'مجھے باش پسند ہے' | ڈبلیو سی -سی
# awk کمانڈ کا استعمال کرتے ہوئے لمبائی گنیں۔
باہر پھینک دیا 'مجھے ازگر پسند ہے' | عجیب '{پرنٹ کی لمبائی}'

#30۔ متوازی طور پر ایک سے زیادہ بش اسکرپٹ کیسے چلائیں؟

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

مثال:

# متغیر $ dir میں موجود راستے کے ساتھ ایک فولڈر کا نام تفویض کریں۔
# متعدد بیش فائلیں۔
آپ کو=گھر/اوبنٹو/درجہ حرارت

# لوپ ڈائرکٹری سے ہر فائل کو پڑھیں گے اور متوازی طور پر عمل کریں گے۔
کے لیےسکرپٹمیںآپ کو/ *.ایسیچ
کیا
نہیں لشکر '$ اسکرپٹ۔' &
ہو گیا

نتیجہ:

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