باش اسکرپٹس: شروعات

باش اسکرپٹس: شروعات
باش اسکرپٹس حصہ 2: لوپس
باش اسکرپٹس، حصہ 3: کمانڈ لائن کے اختیارات اور سوئچز
باش اسکرپٹس حصہ 4: ان پٹ اور آؤٹ پٹ
باش اسکرپٹس، حصہ 5: سگنلز، بیک گراؤنڈ ٹاسکس، اسکرپٹ مینجمنٹ
باش اسکرپٹس، حصہ 6: افعال اور لائبریری کی ترقی
باش اسکرپٹس، حصہ 7: sed اور ورڈ پروسیسنگ
باش اسکرپٹس، حصہ 8: اوک ڈیٹا پروسیسنگ لینگویج
باش اسکرپٹس حصہ 9: باقاعدہ اظہار
باش اسکرپٹس حصہ 10: عملی مثالیں۔
باش اسکرپٹس، حصہ 11: انٹرایکٹو یوٹیلیٹیز کی توقع اور آٹومیشن

آج ہم باش اسکرپٹس کے بارے میں بات کریں گے۔ یہ - کمانڈ لائن اسکرپٹس، باش شیل کے لئے لکھا گیا ہے۔ دوسرے شیل ہیں جیسے zsh، tcsh، ksh، لیکن ہم bash پر توجہ مرکوز کریں گے۔ یہ مواد سب کے لئے ہے، صرف شرط میں کام کرنے کی صلاحیت ہے کمانڈ لائن لینکس

باش اسکرپٹس: شروعات

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

باش اسکرپٹس: شروعات

لہذا، اگر ہم کمانڈ لائن کے بارے میں بات کرتے ہیں، تو یہ آپ کو ایک ہی وقت میں کئی کمانڈز کو سیمی کالون سے الگ کرکے ان پر عمل کرنے کی اجازت دیتا ہے:

pwd ; whoami

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

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

getconf ARG_MAX

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

باش اسکرپٹس کیسے کام کرتی ہیں۔

کمانڈ کا استعمال کرتے ہوئے ایک خالی فائل بنائیں touch. اس کی پہلی لائن کو یہ بتانے کی ضرورت ہے کہ ہم کون سا شیل استعمال کرنے جا رہے ہیں۔ ہم اس میں دلچسپی رکھتے ہیں۔ bash، تو فائل کی پہلی لائن ہوگی:

#!/bin/bash

اس فائل میں دیگر لائنیں ہیش کی علامت کا استعمال کرتے ہوئے تبصروں کی نشاندہی کرتی ہیں جن پر شیل عمل نہیں کرتا ہے۔ تاہم، پہلی سطر ایک خاص صورت ہے، وہاں ایک ہیش ہے جس کے بعد ایک فجائیہ نشان ہے (اس ترتیب کو کہا جاتا ہے شیبانگ) اور راستہ bash، اس نظام کی طرف اشارہ کریں جس کے لیے اسکرپٹ خاص طور پر بنایا گیا تھا۔ bash.

شیل کمانڈز کو لائن فیڈ سے الگ کیا جاتا ہے، تبصرے ہیش کے نشان سے الگ ہوتے ہیں۔ یہ ایسا لگتا ہے:

#!/bin/bash
# This is a comment
pwd
whoami

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

اسکرپٹ فائل کی اجازتوں کی ترتیب

فائل کو ایک نام دے کر محفوظ کریں۔ myscript، اور bash اسکرپٹ بنانے کا کام تقریباً ختم ہو چکا ہے۔ اب صرف اس فائل کو قابل عمل بنانا باقی ہے، ورنہ، اگر آپ اسے چلانے کی کوشش کریں گے، تو آپ کو ایک غلطی کا سامنا کرنا پڑے گا۔ Permission denied.

باش اسکرپٹس: شروعات
غلط ترتیب شدہ اجازتوں کے ساتھ اسکرپٹ فائل کو چلانے کی کوشش

آئیے فائل کو قابل عمل بناتے ہیں:

chmod +x ./myscript

اب آئیے اس پر عمل کرنے کی کوشش کریں:

./myscript

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

باش اسکرپٹس: شروعات
bash اسکرپٹ کامیابی کے ساتھ چل رہا ہے۔

پیغام آؤٹ پٹ

لینکس کنسول میں ٹیکسٹ آؤٹ پٹ کرنے کے لیے، کمانڈ استعمال کریں۔ echo. آئیے اس حقیقت کے علم کو استعمال کریں اور اپنے اسکرپٹ میں ترمیم کریں، اس ڈیٹا میں وضاحتیں شامل کریں جو اس میں پہلے سے موجود کمانڈز کے ذریعے آؤٹ پٹ ہے:

#!/bin/bash
# our comment is here
echo "The current directory is:"
pwd
echo "The user logged in is:"
whoami

اپ ڈیٹ شدہ اسکرپٹ کو چلانے کے بعد یہی ہوتا ہے۔

باش اسکرپٹس: شروعات
اسکرپٹ سے پیغامات کو آؤٹ پٹ کرنا

اب ہم کمانڈ کا استعمال کرتے ہوئے وضاحتی نوٹ دکھا سکتے ہیں۔ echo. اگر آپ نہیں جانتے کہ لینکس ٹولز کا استعمال کرتے ہوئے فائل کو کیسے ایڈٹ کرنا ہے، یا آپ نے پہلے کمانڈ نہیں دیکھی ہے۔ echo، ذرا دیکھنا اسے یہ مواد.

متغیرات کا استعمال

متغیرات آپ کو اسکرپٹ فائل میں معلومات ذخیرہ کرنے کی اجازت دیتے ہیں، جیسے کمانڈز کے نتائج، دوسرے کمانڈز کے استعمال کے لیے۔

انفرادی کمانڈز کو ان کے نتائج کو محفوظ کیے بغیر عمل میں لانے میں کوئی حرج نہیں ہے، لیکن یہ نقطہ نظر اپنی صلاحیتوں میں کافی حد تک محدود ہے۔

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

  • ماحولیاتی تغیرات
  • صارف متغیرات

ماحولیاتی تغیرات

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

#!/bin/bash
# display user home
echo "Home for the current user is: $HOME"

براہ کرم نوٹ کریں کہ ہم سسٹم متغیر استعمال کر سکتے ہیں۔ $HOME دوہرے حوالوں میں، یہ سسٹم کو اسے پہچاننے سے نہیں روکے گا۔ اگر آپ مندرجہ بالا منظر نامے کو چلاتے ہیں تو آپ کو یہی ملتا ہے۔

باش اسکرپٹس: شروعات
اسکرپٹ میں ماحولیاتی متغیر کا استعمال

اگر آپ کو اسکرین پر ڈالر کا نشان ظاہر کرنے کی ضرورت ہو تو کیا ہوگا؟ آئیے اسے آزمائیں:

echo "I have $1 in my pocket"

سسٹم کوٹڈ سٹرنگ میں ڈالر کے نشان کا پتہ لگائے گا اور فرض کرے گا کہ ہم نے متغیر کا حوالہ دیا ہے۔ اسکرپٹ ایک غیر متعینہ متغیر کی قدر ظاہر کرنے کی کوشش کرے گی۔ $1. یہ وہی نہیں ہے جس کی ہمیں ضرورت ہے۔ کیا کرنا ہے؟

اس صورت حال میں، ڈالر کے نشان سے پہلے فرار کردار، بیک سلیش کا استعمال مدد کرے گا:

echo "I have $1 in my pocket"

اسکرپٹ اب بالکل وہی آؤٹ پٹ کرے گا جس کی توقع ہے۔

باش اسکرپٹس: شروعات
ڈالر کے نشان کو پرنٹ کرنے کے لیے فرار کی ترتیب کا استعمال کرنا

صارف متغیرات

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

سسٹم متغیرات کی طرح، ڈالر کے نشان کا استعمال کرتے ہوئے صارف کے متغیرات تک رسائی حاصل کی جا سکتی ہے:
TNW-CUS-FMP - ہماری خدمات پر 10% رعایت کے لیے پرومو کوڈ، 7 دنوں کے اندر ایکٹیویشن کے لیے دستیاب

#!/bin/bash
# testing variables
grade=5
person="Adam"
echo "$person is a good boy, he is in grade $grade"

ایسا اسکرپٹ چلانے کے بعد ہوتا ہے۔

باش اسکرپٹس: شروعات
اسکرپٹ میں حسب ضرورت متغیرات

کمانڈ متبادل

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

ایسا کرنے کے دو طریقے ہیں۔

  • بیک ٹک "`" کا استعمال
  • ڈیزائن کی طرف سے $()

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

mydir=`pwd`

دوسرے نقطہ نظر میں بھی یہی بات اس طرح لکھی گئی ہے:

mydir=$(pwd)

اور اسکرپٹ کا اختتام اس طرح ہوسکتا ہے:

#!/bin/bash
mydir=$(pwd)
echo $mydir

اس کے آپریشن کے دوران، کمانڈ کی پیداوار pwdمتغیر میں محفوظ کیا جائے گا۔ mydir، جس کے مندرجات، کمانڈ کا استعمال کرتے ہوئے echo، کنسول پر جائیں گے۔

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

ریاضی کے عمل

اسکرپٹ فائل میں ریاضی کی کارروائیوں کو انجام دینے کے لیے، آپ کنسٹرکٹ کی طرح استعمال کرسکتے ہیں۔ $((a+b)):

#!/bin/bash
var1=$(( 5 + 5 ))
echo $var1
var2=$(( $var1 * 2 ))
echo $var2

باش اسکرپٹس: شروعات
اسکرپٹ میں ریاضی کی کارروائیاں

if-تو کنٹرول کنسٹرکٹ

کچھ منظرناموں میں، آپ کو کمانڈ پر عمل درآمد کے بہاؤ کو کنٹرول کرنے کی ضرورت ہے۔ مثال کے طور پر، اگر کوئی خاص قدر پانچ سے زیادہ ہے، تو آپ کو ایک عمل کرنا ہوگا، بصورت دیگر، دوسرا۔ یہ بہت سے حالات میں لاگو ہوتا ہے، اور یہاں کنٹرول ڈھانچہ ہماری مدد کرے گا۔ if-then. اس کی سب سے آسان شکل میں یہ اس طرح لگتا ہے:

if команда
then
команды
fi

یہاں ایک کام کرنے والی مثال ہے:

#!/bin/bash
if pwd
then
echo "It works"
fi

اس صورت میں، اگر حکم پر عمل کیا جاتا ہے pwdکامیابی سے مکمل ہو جائے گا، متن "یہ کام کرتا ہے" کنسول میں دکھایا جائے گا.

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

#!/bin/bash
user=likegeeks
if grep $user /etc/passwd
then
echo "The user $user Exists"
fi

اس اسکرپٹ کو چلانے کے بعد یہی ہوتا ہے۔

باش اسکرپٹس: شروعات
صارف کی تلاش

یہاں ہم نے کمانڈ استعمال کیا۔ grepفائل میں صارف کو تلاش کرنے کے لیے /etc/passwd. اگر ٹیم grepآپ کے لیے ناواقف، اس کی تفصیل مل سکتی ہے۔ یہاں.

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

if-then-else کنٹرول کی تعمیر

پروگرام کے کامیاب تلاش اور ناکامی دونوں کے نتائج کی اطلاع دینے کے قابل ہونے کے لیے، ہم تعمیر کا استعمال کریں گے۔ if-then-else. یہاں یہ ہے کہ یہ کیسے کام کرتا ہے:

if команда
then
команды
else
команды
fi

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

آئیے درج ذیل اسکرپٹ لکھتے ہیں:

#!/bin/bash
user=anotherUser
if grep $user /etc/passwd
then
echo "The user $user Exists"
else
echo "The user $user doesn’t exist"
fi

اس کی پھانسی نالے میں چلی گئی۔ else.

باش اسکرپٹس: شروعات
if-then-else کنسٹرکٹ کے ساتھ اسکرپٹ چلانا

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

if команда1
then
команды
elif команда2
then
команды
fi

اگر پہلی کمانڈ صفر لوٹاتا ہے، جو اس کے کامیاب عمل کی نشاندہی کرتا ہے، تو پہلے بلاک میں موجود کمانڈز کو عمل میں لایا جائے گا۔ thenدوسری صورت میں، اگر پہلی شرط غلط ہے اور اگر دوسری کمانڈ صفر لوٹاتی ہے، تو کوڈ کے دوسرے بلاک کو عمل میں لایا جائے گا۔

#!/bin/bash
user=anotherUser
if grep $user /etc/passwd
then
echo "The user $user Exists"
elif ls /home
then
echo "The user doesn’t exist but anyway there is a directory under /home"
fi

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

نمبروں کا موازنہ

اسکرپٹ میں آپ عددی اقدار کا موازنہ کر سکتے ہیں۔ ذیل میں متعلقہ کمانڈز کی فہرست ہے۔

n1 -eq n2اگر صحیح لوٹاتا ہے۔ n1 یکساں n2.
n1 -ge n2 اگر صحیح لوٹاتا ہے۔ n1زیادہ یا برابر n2.
n1 -gt n2اگر صحیح لوٹاتا ہے۔ n1 بہتر n2.
n1 -le n2اگر صحیح لوٹاتا ہے۔ n1کم یا برابر؟ n2.
n1 -lt n2صحیح لوٹاتا ہے اگر n1 اس سے کم ہے۔ n2.
n1 -ne n2اگر صحیح لوٹاتا ہے۔ n1برابر نہیں n2.

مثال کے طور پر، آئیے موازنہ آپریٹرز میں سے ایک کو آزماتے ہیں۔ نوٹ کریں کہ ایکسپریشن مربع بریکٹ میں بند ہے۔

#!/bin/bash
val1=6
if [ $val1 -gt 5 ]
then
echo "The test value $val1 is greater than 5"
else
echo "The test value $val1 is not greater than 5"
fi

یہ وہی ہے جو یہ کمانڈ آؤٹ پٹ کرے گا۔

باش اسکرپٹس: شروعات
اسکرپٹ میں نمبروں کا موازنہ

متغیر قدر val15 سے زیادہ، برانچ ختم ہو جاتی ہے۔ thenموازنہ آپریٹر اور ایک متعلقہ پیغام کنسول میں ظاہر ہوتا ہے۔

سٹرنگ کا موازنہ

اسکرپٹ سٹرنگ ویلیو کا موازنہ بھی کر سکتی ہے۔ موازنہ آپریٹرز کافی آسان نظر آتے ہیں، لیکن سٹرنگ موازنہ آپریشنز میں کچھ خصوصیات ہیں، جنہیں ہم ذیل میں چھوئیں گے۔ یہاں آپریٹرز کی ایک فہرست ہے۔

str1 = str2 برابری کے لیے سٹرنگز کی جانچ کرتا ہے، اگر سٹرنگز ایک جیسی ہوں تو درست ہو جاتی ہیں۔
str1 != str2اگر سٹرنگز ایک جیسی نہیں ہیں تو درست لوٹاتا ہے۔
str1 < str2اگر صحیح لوٹاتا ہے۔ str1سے کم str2.
str1 > str2 اگر صحیح لوٹاتا ہے۔ str1اس سے زیادہ str2.
-n str1 طوالت کی صورت میں درست لوٹاتا ہے۔ str1صفر سے اوپر۔
-z str1طوالت کی صورت میں درست لوٹاتا ہے۔ str1صفر ہے۔

اسکرپٹ میں تاروں کا موازنہ کرنے کی ایک مثال یہ ہے:

#!/bin/bash
user ="likegeeks"
if [$user = $USER]
then
echo "The user $user  is the current logged in user"
fi

اسکرپٹ پر عمل کرنے کے نتیجے میں، ہمیں درج ذیل ملتا ہے۔

باش اسکرپٹس: شروعات
اسکرپٹ میں تاروں کا موازنہ کرنا

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

کوڈ میں ان آپریٹرز کے ساتھ کام کرنے کا طریقہ یہ ہے:

#!/bin/bash
val1=text
val2="another text"
if [ $val1 > $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

اسکرپٹ کے نتائج یہ ہیں۔

باش اسکرپٹس: شروعات
سٹرنگ کا موازنہ، وارننگ دی گئی۔

براہ کرم نوٹ کریں کہ اسکرپٹ، اگرچہ عمل میں آیا ہے، ایک انتباہ جاری کرتا ہے:

./myscript: line 5: [: too many arguments

اس انتباہ سے چھٹکارا حاصل کرنے کے لئے، ہم نتیجہ اخذ کرتے ہیں $val2 ڈبل حوالوں میں:

#!/bin/bash
val1=text
val2="another text"
if [ $val1 > "$val2" ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

اب سب کچھ اس طرح کام کرتا ہے جیسے اسے ہونا چاہئے۔

باش اسکرپٹس: شروعات
سٹرنگ کا موازنہ

">" اور "<" آپریٹرز کی ایک اور خصوصیت یہ ہے کہ وہ بڑے اور چھوٹے حروف کے ساتھ کیسے کام کرتے ہیں۔ اس خصوصیت کو سمجھنے کے لیے، آئیے درج ذیل مواد کے ساتھ ایک ٹیکسٹ فائل تیار کریں:

Likegeeks
likegeeks

آئیے اسے ایک نام دے کر محفوظ کریں۔ myfile، پھر ٹرمینل میں درج ذیل کمانڈ کو چلائیں:

sort myfile

یہ فائل سے لائنوں کو اس طرح ترتیب دے گا:

likegeeks
Likegeeks

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

#!/bin/bash
val1=Likegeeks
val2=likegeeks
if [ $val1 > $val2 ]
then
echo "$val1 is greater than $val2"
else
echo "$val1 is less than $val2"
fi

اگر آپ اسے چلاتے ہیں، تو پتہ چلتا ہے کہ سب کچھ الٹا ہے - چھوٹے حروف اب بڑے حروف سے بڑا ہے۔

باش اسکرپٹس: شروعات
اسکرپٹ فائل میں ترتیب دینے کی کمانڈ اور تاروں کا موازنہ کرنا

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

ٹیم sort, بدلے میں، سسٹم لینگویج سیٹنگز میں بیان کردہ ترتیب ترتیب کا استعمال کرتا ہے۔

فائل چیک

شاید درج ذیل کمانڈز اکثر bash اسکرپٹ میں استعمال ہوتے ہیں۔ وہ آپ کو فائلوں سے متعلق مختلف شرائط کو چیک کرنے کی اجازت دیتے ہیں۔ یہاں ان کمانڈز کی ایک فہرست ہے۔

-d fileچیک کرتا ہے کہ آیا کوئی فائل موجود ہے اور ڈائریکٹری ہے۔
-e fileچیک کرتا ہے کہ آیا فائل موجود ہے۔
-f file چیک کرتا ہے کہ آیا کوئی فائل موجود ہے اور فائل ہے۔
-r fileچیک کرتا ہے کہ آیا فائل موجود ہے اور پڑھنے کے قابل ہے۔
-s file Пچیک کرتا ہے کہ آیا فائل موجود ہے اور خالی نہیں ہے۔
-w fileچیک کرتا ہے کہ آیا فائل موجود ہے اور قابل تحریر ہے۔
-x fileچیک کرتا ہے کہ آیا فائل موجود ہے اور قابل عمل ہے۔
file1 -nt file2 چیک کرتا ہے کہ آیا یہ نیا ہے۔ file1سے file2.
file1 -ot file2چیک کرتا ہے کہ آیا پرانا file1سے file2.
-O file چیک کرتا ہے کہ آیا فائل موجود ہے اور موجودہ صارف کی ملکیت ہے۔
-G fileچیک کرتا ہے کہ آیا فائل موجود ہے اور آیا اس کا گروپ ID موجودہ صارف کے گروپ ID سے میل کھاتا ہے۔

یہ احکام، نیز بہت سے دوسرے جو آج زیر بحث آئے ہیں، یاد رکھنے میں آسان ہیں۔ ان کے نام، مختلف الفاظ کے مخفف ہونے کی وجہ سے، براہ راست ان کی جانچ کی نشاندہی کرتے ہیں۔

آئیے عملی طور پر حکموں میں سے ایک کو آزمائیں:

#!/bin/bash
mydir=/home/likegeeks
if [ -d $mydir ]
then
echo "The $mydir directory exists"
cd $ mydir
ls
else
echo "The $mydir directory does not exist"
fi

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

باش اسکرپٹس: شروعات
ڈائریکٹری کے مواد کی فہرست بنانا

ہمیں یقین ہے کہ آپ بقیہ کمانڈز کے ساتھ خود تجربہ کر سکتے ہیں؛ وہ سب ایک ہی اصول کے مطابق استعمال ہوتے ہیں۔

کے نتائج

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

  1. باش اسکرپٹ مرحلہ وار - یہاں ہم بات کر رہے ہیں کہ کس طرح باش اسکرپٹ بنانا شروع کیا جائے، متغیرات کے استعمال پر غور کیا گیا، مشروط ڈھانچہ، حساب، نمبروں کا موازنہ، تار، اور فائلوں کے بارے میں معلومات کو تلاش کرنا بیان کیا گیا ہے۔
  2. باش اسکرپٹ پارٹ 2، باش دی زبردست - یہاں لوپس کے لیے اور اس کے ساتھ کام کرنے کی خصوصیات ظاہر کی گئی ہیں۔
  3. باش اسکرپٹنگ حصہ 3، پیرامیٹرز اور اختیارات — یہ مواد کمانڈ لائن کے پیرامیٹرز اور کلیدوں کے لیے وقف ہے جو اسکرپٹ میں منتقل کیے جا سکتے ہیں، اس ڈیٹا کے ساتھ کام کرتے ہوئے جو صارف داخل کرتا ہے اور جسے فائلوں سے پڑھا جا سکتا ہے۔
  4. باش اسکرپٹنگ حصہ 4، ان پٹ اور آؤٹ پٹ - یہاں ہم فائل ڈسکرپٹرز کے بارے میں بات کر رہے ہیں اور ان کے ساتھ کام کر رہے ہیں، ان پٹ، آؤٹ پٹ، ایرر اسٹریمز، اور آؤٹ پٹ ری ڈائریکشن کے بارے میں۔
  5. باش اسکرپٹنگ حصہ 5، سگلز اور نوکریاں — یہ مواد لینکس سگنلز، اسکرپٹس میں ان کی پروسیسنگ، اور شیڈول پر اسکرپٹ لانچ کرنے کے لیے وقف ہے۔
  6. باش اسکرپٹنگ حصہ 6، افعال — یہاں آپ اسکرپٹس میں فنکشنز بنانے اور استعمال کرنے اور لائبریریوں کو تیار کرنے کے بارے میں جان سکتے ہیں۔
  7. باش اسکرپٹنگ حصہ 7، sed کا استعمال کرتے ہوئے - یہ مضمون sed سٹریمنگ ٹیکسٹ ایڈیٹر کے ساتھ کام کرنے کے لیے وقف ہے۔
  8. باش اسکرپٹنگ حصہ 8، awk کا استعمال کرتے ہوئے - یہ مواد awk ڈیٹا پروسیسنگ زبان میں پروگرامنگ کے لیے وقف ہے۔
  9. باش اسکرپٹنگ حصہ 9، باقاعدہ اظہار - یہاں آپ باش اسکرپٹس میں ریگولر ایکسپریشن استعمال کرنے کے بارے میں پڑھ سکتے ہیں۔
  10. باش اسکرپٹنگ حصہ 10، عملی مثالیں۔ - یہاں پیغامات کے ساتھ کام کرنے کی تکنیکیں ہیں جو صارفین کو بھیجی جا سکتی ہیں، نیز ڈسک کی نگرانی کا طریقہ۔
  11. باش اسکرپٹنگ حصہ 11، کمانڈ کی توقع کریں۔ - یہ مواد Expect ٹول کے لیے وقف ہے، جس کی مدد سے آپ انٹرایکٹو یوٹیلیٹیز کے ساتھ تعامل کو خودکار کر سکتے ہیں۔ خاص طور پر، ہم توقع اسکرپٹس اور باش اسکرپٹس اور دیگر پروگراموں کے ساتھ ان کے تعامل کے بارے میں بات کر رہے ہیں۔

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

پیارے قارئین! ہم bash پروگرامنگ گرو سے اس بارے میں بات کرنے کو کہتے ہیں کہ وہ کس طرح اپنی مہارت کی بلندیوں پر پہنچے، اپنے راز بتائے، اور ہم ان لوگوں سے تاثرات حاصل کرنے کے منتظر ہیں جنہوں نے ابھی اپنا پہلا اسکرپٹ لکھا ہے۔

باش اسکرپٹس: شروعات

سروے میں صرف رجسٹرڈ صارفین ہی حصہ لے سکتے ہیں۔ سائن ان، برائے مہربانی.

کیا مجھے باقی مضامین کا ترجمہ کرنا چاہیے؟

  • جی ہاں!

  • نہیں کوئی ضرورت نہیں۔

1030 صارفین نے ووٹ دیا۔ 106 صارفین غیر حاضر رہے۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں