امروز تصمیم داریم پیرامون اتخاذ تصمیم یا همان شرط ها در اسکریپت نویسی به زبان shell یا همون bash ی توضیحاتی بدهیم. قطعا به هنگام اسکریپت نویسی بارها برای شما پیش خواهد آمد که از شرطها استفاده کنید. در شل دو حالت کلی وجود داره:
- if else
- case esac
عبارات if else
امروز من مورد یک رو که همون عبارت if else هست رو توضیح میدم. خود این مساله هم چند حالت داره که خدمتتون میگم:
if fi
این بخش ساده ترین حالت جملات شرطی هست که ابتدای اون کلمه if و انتها باید fi آورده بشه. قاعده کلی استفاده از اون به صورت زیر است:
1 2 3 4 |
if [ expression ] then Statement(s) to be executed if expression is true fi |
اگر شرط صحیح بود عبارت درون شرط اجرا میشه. در غیر این صورت عبارت درون شرط اجرا نمیشه. اگر شرط شما یک دستور باشه و درست باشه سیستم عامل مقدار صفر رو و اگر شرط از نوعه بولین باشه و درست باشه سیستم مقدار true رو برمیگردونه.
مثال:
1 2 3 4 5 6 7 8 9 10 11 |
#!/bin/bash a=10 b=20 if [ $a == $b ] then echo "a is equal to b" fi if [ $a != $b ] then echo "a is not equal to b" fi |
بعد از اجرا کردن کد مقدار زیر رو به شما برمیگردونه:
1 |
a is not equal to b |
if else fi
بعد از شرح مورد قبل این مورد کمی کامل تر هست. به طوری که اگر شرط درست باشه عبارت اجرا میشه اما اگر شرط درست نباشه جملات بعد از else بررسی میشه و به اجرا در میاد.
نحوه استفاده از آن به صورت زیر است:
1 2 3 4 5 6 |
if [ expression ] then Statement(s) to be executed if expression is true else Statement(s) to be executed if expression is not true fi |
مثال:
1 2 3 4 5 6 7 8 9 |
#!/bin/bash a=10 b=20 if [ $a == $b ] then echo "a is equal to b" else echo "a is not equal to b" fi |
بعد از اجرا خروجی زیر رو دریافت خواهید کرد:
1 |
a is not equal to b |
if elif fi
این حالت از کاملترین حالات بررسی شرط در bash است که بسته به نیازتون میتونید ازش استفاده کنید. در این حالت شما میتونید چند شرط رو داخل یک شرط بررسی کنید. قاعده کلی استفاده از اون به صورت زیر است:
1 2 3 4 5 6 7 8 9 10 11 12 |
if [ expression 1 ] then Statement(s) to be executed if expression 1 is true elif [ expression 2 ] then Statement(s) to be executed if expression 2 is true elif [ expression 3 ] then Statement(s) to be executed if expression 3 is true else Statement(s) to be executed if no expression is true fi |
برای اینکه بهتر متوجه بشید میتونید مثال زیر رو مطالعه و اجرا کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#!/bin/sh a=10 b=20 if [ $a == $b ] then echo "a is equal to b" elif [ $a -gt $b ] then echo "a is greater than b" elif [ $a -lt $b ] then echo "a is less than b" else echo "None of the condition met" fi |
بعد از اجرای اسکریپت خروجی زیر رو دریافت خواهید کرد:
1 |
a is less than b |