وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

عبارت شرطی Bash

0 3
زمان لازم برای مطالعه: 5 دقیقه


دستور شرطی در هر زبان برنامه نویسی برای انجام هر کار تصمیم گیری استفاده می شود. این عبارت نیز در bash برای انجام وظایف خودکار مانند یک زبان برنامه نویسی دیگر، فقط نحو آن کمی متفاوت است bash. دو نوع دستور شرطی را می توان در آن استفاده کرد bash. اینها عبارت‌های «اگر» و «مورد» هستند. عبارات “اگر” می توانند برای بررسی شرایط به روش های مختلف استفاده شوند. بسیاری از تغییرات عبارات «اگر» در این آموزش توضیح داده شده است. عبارت ‘case’ به عنوان جایگزینی برای عبارت ‘if’ استفاده می شود. اما، برخی از شرایط خاص را می توان تنها با استفاده از عبارت ‘case’ بررسی کرد و از شرایط مختلفی مانند ‘if’ پشتیبانی نمی کند. بنابراین، هر کاری که توسط دستور ‘case’ انجام می شود را می توان به راحتی با دستور ‘if’ انجام داد، اما دستور ‘case’ را نمی توان برای همه انواع کارهای انجام شده توسط ‘if’ استفاده کرد. این آموزش به خوانندگان کمک می کند تا کاربرد عبارات شرطی را یاد بگیرند bash اسکریپت با استفاده از مثال های مختلف.

انواع گزاره های شرطی

انواع جملات شرطی زیر را می توان در آن استفاده کرد bash.

  1. اگر بیانیه
  2. اگر غیر از بیانیه
  3. بیانیه if elif
  4. عبارت if تو در تو
  5. بیانیه مورد

هر نوع عبارت در این آموزش با یک مثال توضیح داده شده است.

عملگرهای شرطی

بسیاری از عملگرهای شرطی را می توان در دستور “if” برای انجام هر کار شرطی استفاده کرد. برخی از عملگرهای شرطی که بیشتر مورد استفاده قرار می گیرند در زیر ذکر شده اند.

اپراتور شرح
معادله اگر دو عدد معادل باشند، true را برمی‌گرداند
-آن اگر عددی کوچکتر از عدد دیگری باشد true برمی گرداند
-gt اگر عددی بزرگتر از عدد دیگری باشد، true را برمی گرداند
== اگر دو رشته معادل باشند مقدار true را برمی گرداند
!= اگر دو رشته معادل نباشند، true را برمی‌گرداند
! اگر عبارت نادرست باشد، true را برمی‌گرداند
وجود دایرکتوری را بررسی کنید
-e وجود یک فایل را بررسی کنید
-r وجود یک فایل و مجوز خواندن را بررسی کنید
-w وجود یک فایل و مجوز نوشتن را بررسی کنید
-ایکس وجود یک فایل را بررسی کنید و مجوز را اجرا کنید

استفاده از عبارت ساده if

نحو:

اگر [ condition ] ; سپس

فرمان(س)

فی

مثال-1: دستور if با شرط واحد

این مثال استفاده شرطی منفرد از دستور if را نشان می دهد. یک فایل به نام cond1.sh ایجاد کنید و اسکریپت زیر را اضافه کنید. این اسکریپت یک مقدار عددی را به عنوان ورودی می گیرد و با استفاده از شرط if بررسی می کند که مقدار آن کمتر از 100 باشد یا خیر. اگر شرط درست باشد، خواهد بود print یک پیام در terminal.

cond1.sh

#!/صندوقچه/bash
echo “شماره ای را وارد کنید”
خواندن n
اگر [ $n -lt 100 ]; سپس
printf $n کمتر از 100 است\n
فی

خروجی:

اسکریپت را اجرا کنید.

$ bash cond1.sh

در اینجا، 87 به عنوان ورودی گرفته می شود که کمتر از 100 است. بنابراین، خروجی “87 کمتر از 100 است”. هیچ خروجی برای ورودی بیشتر از 100 چاپ نمی شود.

عبارت شرطی Bash

مثال-2: دستور if با چند شرط

روش اعمال دو شرط با AND منطقی در عبارت if در این مثال نشان داده شده است. یک فایل با نام ایجاد کنیدcond2.shو اسکریپت زیر را اضافه کنید. اینجا، نام کاربری و کلمه عبور از کاربر گرفته خواهد شد. در مرحله بعد، از عبارت “if” برای بررسی نام کاربری استفاده می شود ‘مدیر“و رمز عبور” استابر کاربر‘. اگر هر دو مقدار مطابقت داشته باشند، عبارت “if” به درستی و print پیام “ورود با موفقیت”

cond2.sh

#!/صندوقچه/bash
echo “نام کاربری را وارد کنید”
خواندن un
echo “رمز عبور را وارد کنید”
خواندن pw
اگر [[ $un == “admin” && $pw == “superuser” ]]; سپس
echo “ورود با موفقیت انجام شد.”
فی

خروجی:

اسکریپت را اجرا کنید.

$ bash cond2.sh

فیلمنامه خواهد شد print بدون خروجی برای ورودی نامعتبر و print پیام موفقیت برای ورودی معتبر

عبارت شرطی Bashعبارت شرطی Bash

استفاده از عبارت if-else

نحو:

اگر [ condition ]; سپس

پیشنهاد می‌کنیم بخوانید:  Bash Script برای دریافت Symlink Target

فرمان(س)
دیگر

فرمان(س)
فی

مثال-3: دستور if-else با چند شرط

برای اجرای یک دستور برای شرط true و یک دستور دیگر برای شرط false، اگر دیگری در این مثال از عبارت استفاده شده است. یک فایل به نام ایجاد کنید ‘cond3.sh’ و اسکریپت زیر را اضافه کنید. اینجا، $name متغیر برای گرفتن ورودی از کاربر و مقدار استفاده می شود $name با دو مقدار مقایسه خواهد شد، “نها” و ‘نیل‘. اگر $name با هر یک از این مقادیر مطابقت دارد، سپس شرط if true و عبارت of برمی گردد “اگر” قسمت اجرا خواهد شد اگر $name با هیچ یک از مقادیر مطابقت ندارد، اگر شرط نادرست است و عبارت ‘دیگر’ قسمت اجرا خواهد شد

cond3.sh

#!/صندوقچه/bash
echo “اسمت را وارد کن”
خواندن نام
اگر [[ $name == “Neha” || $name == ‘Nil’ ]]; سپس
echo “تو جایزه را بردی”
دیگر
echo “برای دفعه بعد تلاش کن”
فی

خروجی:

اسکریپت را اجرا کنید.

$ bash cond3.sh

خروجی عبارت است از «شما جایزه را بردید» برای ورودی معتبر و «برای دفعه بعد امتحان کنید» برای ورودی نامعتبر.

عبارت شرطی Bashعبارت شرطی Bash

استفاده از عبارت if-elif-else

نحو:

اگر [ condition ]; سپس

فرمان(س)
elif [ condition ]; سپس

فرمان(س)

…..
دیگر

فرمان(س)
فی

مثال-4: عبارت if-elif-else برای بررسی شرایط مختلف

شرایط چندگانه با عبارات if در این مثال به اعلان شده است print بر اساس درجه روی علامت ورودی یک فایل به نام ایجاد کنید ‘cond4.shو اسکریپت زیر را اضافه کنید. پس از گرفتن ارزش علامت دلار، اولین عبارت «if» که مقدار آن بزرگتر یا مساوی 90 است. print “Grade – A+” در غیر این صورت برای شرط دوم خواهد رفت. دومین “if” مقدار کمتر از 90 و بزرگتر یا مساوی 80 است. اگر مقدار true را برگرداند، این مقدار print “درجه – A” در غیر این صورت برای شرط سوم خواهد رفت. اگر شرط سوم درست باشد، درست است print “Grade – B+” در غیر این صورت به سراغ شرط چهارم بروید. اگر شرط چهارم درست باشد، درست است print “Grade – C+” و اگر false را برگرداند، عبارت else اجرا خواهد شد که print“درجه – F”.

cond4.sh

#!/صندوقچه/bash
echo “علامت را وارد کنید”
خواندن علامت
اگر (( علامت دلار >= 90 )); سپس
echo “درجه – A+”
elif (( علامت دلار < 90 && علامت دلار >= 80 )); سپس
echo “درجه – A”
elif (( علامت دلار < 80 && علامت دلار >= 70 )); سپس
echo “درجه – B+”
elif (( علامت دلار < 70 && علامت دلار >= 60 )); سپس
echo “درجه – C+”
دیگر
echo “درجه – F”
فی

خروجی:

اسکریپت را اجرا کنید.

$ bash cond4.sh

اسکریپت با سه مقدار علامت تست می شود. اینها 95، 79 و 50 هستند. با توجه به شرایط استفاده شده در اسکریپت، خروجی زیر چاپ می شود.

عبارت شرطی Bashعبارت شرطی Bash

استفاده از تودرتو اگر

نحو:

اگر [ condition ]; سپس

دستورات
اگر [ condition ]; سپس

دستورات
فی
فی

مثال-5: محاسبه پاداش بر اساس روی مقدار و مدت فروش

این مثال استفاده از دستور if تودرتو را نشان می دهد که بر اساس پاداش محاسبه می شود روی مقدار فروش و مدت زمان یک فایل به نام cond5.sh ایجاد کنید و کد زیر را اضافه کنید. ارزش های مبلغ دلار و مدت زمان $ به عنوان ورودی گرفته می شوند. در مرحله بعد، اولین عبارت «if» بررسی می کند که مقدار دلار بزرگتر یا مساوی 10000 است یا خیر. اگر درست را برگرداند، وضعیت عبارت “if” تودرتو را بررسی می کند. ارزش مدت زمان $ توسط عبارت “if” داخلی بررسی می شود. اگر مدت زمان $ کوچکتر یا مساوی 7 باشد، پیام “شما 20% بولوس دریافت خواهید کرد” ذخیره می شود در غیر این صورت پیام “شما 15% پاداش دریافت خواهید کرد” در خروجی $ متغیر. اگر شرط اول “if” false برگرداند، دستورات قسمت else اجرا می شوند. در دومین شرط تودرتو، “اگر” پیام “شما 10% پاداش دریافت خواهید کرد” خواهد بود print برای برگرداندن یک مقدار واقعی و پیام “شما 5٪ پاداش دریافت خواهید کرد” خواهد بود print برای برگرداندن مقدار نادرست

cond5.sh

#!/صندوقچه/bash
echo “مقدار فروش را وارد کنید”
خواندن میزان
echo “مدت زمان را وارد کنید”
خواندن مدت زمان

اگر (( مبلغ دلار >= 10000 )); سپس
اگر (( مدت زمان $ <= 7 )); سپس
خروجی=“شما 20% پاداش دریافت خواهید کرد”
دیگر
خروجی=“شما 15% پاداش دریافت خواهید کرد”
فی
دیگر
اگر (( مدت زمان $ <= 10 )); سپس
خروجی=“شما 10% پاداش دریافت خواهید کرد”
دیگر
خروجی=“شما 5% پاداش دریافت خواهید کرد”
فی
فی
echo خروجی $

پیشنهاد می‌کنیم بخوانید:  چگونه یک رشته را از توابع Bash برگردانیم

خروجی:

اسکریپت را اجرا کنید.

$ bash cond5.sh

اسکریپت ابتدا با 12000 به عنوان مقدار و 5 به عنوان مقدار مدت آزمایش می شود. با توجه به شرط “اگر”، پیام “شما 20٪ پاداش دریافت خواهید کرد” چاپ می شود. در مرحله بعد، اسکریپت با عدد 9000 به عنوان مقدار و 12 به عنوان مقادیر مدت زمان تست می شود و پیام “5% پاداش دریافت خواهید کرد” چاپ می شود.

عبارت شرطی Bashعبارت شرطی Bash

استفاده از بیان مورد

نحو:

مورد که در

الگو 1) دستورات;;

الگوی n) دستورات;;
اساک

مثال-6: عبارت ‘case’ با یک مقدار واحد

عبارت ‘case’ را می توان به عنوان جایگزینی برای عبارت ‘if’ استفاده کرد. یک فایل به نام ایجاد کنید ‘cond6.sh’ و کد زیر را برای انجام چند عملیات ساده حسابی اضافه کنید. این اسکریپت سه مقدار را از خط فرمان می خواند و در متغیرهای $N1، $N2 و $op ذخیره می کند. در اینجا، $N1 و $N2 برای ذخیره دو مقدار عددی و $op برای ذخیره هر عملگر یا نماد حسابی استفاده می شود. عبارت ‘case’ برای بررسی چهار علامت برای انجام هر عملیات حسابی استفاده می شود. هنگامی که $op ‘+’ باشد، $N1 و $N2 را اضافه می کند و نتیجه را در $Result ذخیره می کند. به همین ترتیب، از نمادهای ‘-‘ و ‘/’ برای انجام عملیات تفریق و تقسیم استفاده می شود. نماد ‘x’ در اینجا برای انجام عملیات ضرب استفاده می شود. برای هر مقدار دیگر $op، آن را انجام می دهد print یک پیام، “تعداد آرگومان اشتباه است”.

cond6.sh

#!/صندوقچه/bash
N1=1 دلار
op=2 دلار
N2=3 دلار
مورد $op که در
‘+’)
((نتیجه=N1 دلار+N2 دلار)) ;;
‘-‘)
((نتیجه=N1 دلارN2 دلار)) ;;
‘ایکس’)
((نتیجه=N1 دلار*N2 دلار)) ;;
‘/’)
((نتیجه=N1 دلار/N2 دلار)) ;;
*)
echo “تعداد اشتباه استدلال”
خروج 0 ;;
اساک
echo N1 دلار $op N2 دلار = $نتیجه

خروجی:

اسکریپت را با سه آرگومان خط فرمان اجرا کنید. اسکریپت چهار بار با استفاده از چهار عملگر ‘+’، ‘-‘، ‘x’ و ‘/’ اجرا می شود.

$ bash cond6.sh 40 + 20

$ bash cond6.sh 4020

$ bash cond6.sh 40 ایکس 20

$ bash cond6.sh 40 / 20

پس از اجرای اسکریپت خروجی زیر ظاهر می شود.

عبارت شرطی Bashعبارت شرطی Bash

مثال-7: عبارت ‘case’ با محدوده ای از مقادیر

دستور ‘case’ نمی تواند چند شرط را با عملگر منطقی مانند ‘if’ تعریف کند. اما با استفاده از لوله (‘|’)، شرایط متعددی را می توان در عبارت ‘case’ اختصاص داد. این مثال ارزش درجه بر اساس را نشان می دهد روی نشانه هایی مانند مثال-4 اما از عبارت «case» به جای «اگر» استفاده کنید. $name و $marمقادیر k توسط آرگومان های خط فرمان داده می شود. شرط اول با ‘ تعریف می شود9[0-9]| 100برای چاپ “Grade – A+”. این بدان معنی است که اگر مقدار علامت $ در 90-99 یا 100 باشد، شرط درست خواهد بود. شرط دوم این است8[0-9]برای چاپ “درجه – A” و این مطابقت دارد علامت دلار با هر مقدار از محدوده، 80-89. شرط سوم و چهارم مانند شرط دوم عمل می کند. شرط پنجم این است0|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]برای چاپ “درجه – F” و مطابقت خواهد داشت علامت دلار با 0 یا هر عددی در محدوده های 0-9، 10-19، 20-29، 30-39، 40-49 و 50-59.

cond7.sh

#!/صندوقچه/bash
# درجه چاپ بر اساس روی علامت
نام=1 دلار
علامت=2 دلار
مورد علامت دلار که در
9[09]|100)
مقطع تحصیلی=“A+” ;;
8[09])
مقطع تحصیلی=“آ” ;;
7[09])
مقطع تحصیلی=“B+” ;;
6[09])
مقطع تحصیلی=“C+” ;;
0|[09]|1[09]|2[09]|3[09]|4[09]|5[09])
مقطع تحصیلی=“F” ;;
*)
echo “علامت نامعتبر”
خروج 0 ;;
اساک
echo $name به دست آمده درجه $

خروجی:

اسکریپت را با دو آرگومان خط فرمان اجرا کنید. اسکریپت چهار بار با مقادیر آرگومان مختلف اجرا می شود.

$ bash cond7.sh لیلی 92

$ bash cond7.sh نهار 78

$ bash cond7.sh جان 500

$ bash cond7.sh جان آآ

عبارت شرطی Bashعبارت شرطی Bash

نتیجه:

در این آموزش سعی شده است با استفاده از مثال‌های مناسب، کاربردهای چندگانه عبارات شرط توضیح داده شود. امید است که خواننده بتواند از عبارات شرطی استفاده کند bash اسکریپت کارآمد پس از تمرین مثال های بالا به درستی.

برای اطلاعات بیشتر تماشا کنید ویدیو!

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-31 21:18:05

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید