از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
Bash if… other statement
سرفصلهای مطلب
این مقاله شما را از طریق اصول اولیه راهنمایی می کند bash if...else
بیانیه و روش استفاده از آن در اسکریپت های پوسته را به شما توضیح دهد.
تصمیم گیری یکی از اساسی ترین مفاهیم برنامه نویسی کامپیوتر است. مانند هر زبان برنامه نویسی دیگری، if
، if...else
، if...elif...else
، و تودرتو if
عبارات در Bash برای اجرای کد زمانی که یک شرط خاص وجود دارد استفاده می شود.
if
بیانیه
ضربه شدید if
شرطی ها می توانند اشکال مختلفی داشته باشند. ابتدایی ترین if
بیانیه به شکل زیر است:
if TEST-COMMAND
then
STATEMENTS
fi
را if
بیانیه با شروع می شود if
کلمه کلیدی به دنبال عبارت شرطی و the then
کلمه کلیدی. بیانیه با پایان می یابد fi
کلمه کلیدی.
اگر TEST-COMMAND
ارزیابی می کند True
، STATEMENTS
اعدام می شوند. اگر TEST-COMMAND
برمی گرداند False
، هیچ اتفاقی نمی افتد؛ را STATEMENTS
نادیده گرفته می شوند.
به طور کلی، همیشه تمرین خوبی است که کد خود را فرورفته و بلوک های کد را با خطوط خالی جدا کنید. اکثر مردم استفاده از تورفتگی 4 فاصله یا 2 فاصله را انتخاب می کنند. تورفتگی ها و خطوط خالی کد شما را خواناتر و منظم تر می کند.
بیایید به اسکریپت مثال زیر نگاه کنیم که بررسی می کند آیا یک عدد معین بزرگتر از 10 است یا خیر:
#!/bin/bash
echo -n "Enter a number: "
read VAR
if [[ $VAR -gt 10 ]]
then
echo "The variable is greater than 10."
fi
کد را در یک فایل ذخیره کنید و آن را از خط فرمان اجرا کنید:
bash test.sh
اسکریپت از شما می خواهد که یک عدد را وارد کنید. برای مثال، اگر عدد 15 را وارد کنید، test
دستور به عنوان ارزیابی خواهد شد true
زیرا 15 بزرگتر از 10 است و echo
فرمان در داخل then
بند اجرا خواهد شد.
The variable is greater than 10.
if...else
بیانیه
باش if...else
بیانیه به شکل زیر است:
if TEST-COMMAND
then
STATEMENTS1
else
STATEMENTS2
fi
اگر TEST-COMMAND
ارزیابی می کند True
، STATEMENTS1
اجرا خواهد شد. در غیر این صورت، اگر TEST-COMMAND
برمی گرداند False
، STATEMENTS2
اجرا خواهد شد. شما فقط می توانید یکی داشته باشید else
بند در بیانیه
بیایید یک را اضافه کنیم else
بند به اسکریپت مثال قبلی:
#!/bin/bash
echo -n "Enter a number: "
read VAR
if [[ $VAR -gt 10 ]]
then
echo "The variable is greater than 10."
else
echo "The variable is equal or less than 10."
fi
اگر کد را اجرا کنید و یک عدد وارد کنید، اسکریپت انجام می شود print مبتنی بر پیام متفاوت روی بزرگتر یا کوچکتر/برابر 10 عدد.
if...elif...else
بیانیه
باش if...elif...else
بیانیه به شکل زیر است:
if TEST-COMMAND1
then
STATEMENTS1
elif TEST-COMMAND2
then
STATEMENTS2
else
STATEMENTS3
fi
اگر TEST-COMMAND1
ارزیابی می کند True
، STATEMENTS1
اجرا خواهد شد. اگر TEST-COMMAND2
ارزیابی می کند True
، STATEMENTS2
اجرا خواهد شد. اگر هیچ یک از دستورات تست به عنوان ارزیابی نشوند True
، STATEMENTS2
اجرا خواهد شد.
می توانید یک یا چند مورد داشته باشید elif
بندهای بیانیه را else
بند اختیاری است
شرایط به صورت متوالی ارزیابی می شوند. زمانی که یک شرط برگردد True
، شرایط باقیمانده آزمایش نمی شوند و کنترل برنامه به انتهای آن منتقل می شود if
بیانیه.
بیایید یک را اضافه کنیم elif
بند به اسکریپت قبلی:
#!/bin/bash
echo -n "Enter a number: "
read VAR
if [[ $VAR -gt 10 ]]
then
echo "The variable is greater than 10."
elif [[ $VAR -eq 10 ]]
then
echo "The variable is equal to 10."
else
echo "The variable is less than 10."
fi
تو در تو if
بیانیه
Bash به شما اجازه می دهد لانه کنید if
اظهارات درون if
بیانیه.
شما می توانید چندین قرار دهید if
اظهارات داخل دیگری if
بیانیه.
اسکریپت زیر از شما می خواهد که سه عدد و print بزرگترین عدد در بین این سه عدد
#!/bin/bash
echo -n "Enter the first number: "
read VAR1
echo -n "Enter the second number: "
read VAR2
echo -n "Enter the third number: "
read VAR3
if [[ $VAR1 -ge $VAR2 ]]
then
if [[ $VAR1 -ge $VAR3 ]]
then
echo "$VAR1 is the largest number."
else
echo "$VAR3 is the largest number."
fi
else
if [[ $VAR2 -ge $VAR3 ]]
then
echo "$VAR2 is the largest number."
else
echo "$VAR3 is the largest number."
fi
fi
در اینجا روش خروجی به نظر می رسد:
Enter the first number: 4
Enter the second number: 7
Enter the third number: 2
7 is the largest number.
case
بیانیه به جای تو در تو if
بیانیه.شرایط چندگانه
منطقی OR
و AND
عملگرها به شما این امکان را می دهند که از چندین شرط در if
بیانیه.
در اینجا نسخه دیگری از اسکریپت به است print بزرگترین عدد در بین این سه عدد در این نسخه به جای تو در تو if
عبارات، ما از منطق استفاده می کنیم AND
(&&
) اپراتور.
#!/bin/bash
echo -n "Enter the first number: "
read VAR1
echo -n "Enter the second number: "
read VAR2
echo -n "Enter the third number: "
read VAR3
if [[ $VAR1 -ge $VAR2 ]] && [[ $VAR1 -ge $VAR3 ]]
then
echo "$VAR1 is the largest number."
elif [[ $VAR2 -ge $VAR1 ]] && [[ $VAR2 -ge $VAR3 ]]
then
echo "$VAR2 is the largest number."
else
echo "$VAR3 is the largest number."
fi
اپراتورهای تست
در باش، test
دستور یکی از شکل های نحو زیر را می گیرد:
test EXPRESSION
[ EXPRESSION ]
[[ EXPRESSION ]]
برای اینکه اسکریپت قابل حمل باشد، از تست قدیمی استفاده کنید [
command, which is available روی all POSIX shells. The new upgraded version of the test
command [[
(double brackets) is supported روی most modern systems using Bash, Zsh, and Ksh as a default shell.
To negate the test expression, use the logical NOT
(!
) operator. When comparing strings
, always use single or double quotes to avoid word splitting and globbing issues.
Below are some of the most commonly used operators:
-n
VAR
– True if the length ofVAR
is greater than zero.-z
VAR
– True if theVAR
is empty.STRING1 = STRING2
– True ifSTRING1
andSTRING2
are equal.STRING1 != STRING2
– True ifSTRING1
andSTRING2
are not equal.INTEGER1 -eq INTEGER2
– True ifINTEGER1
andINTEGER2
are equal.INTEGER1 -gt INTEGER2
– True ifINTEGER1
is greater thanINTEGER2
.INTEGER1 -lt INTEGER2
– True ifINTEGER1
is less thanINTEGER2
.INTEGER1 -ge INTEGER2
– True ifINTEGER1
is equal or greater than INTEGER2.INTEGER1 -le INTEGER2
– True ifINTEGER1
is equal or less thanINTEGER2
.-h
FILE
– True if theFILE
exists and is a symbolic link.-r
FILE
– True if theFILE
exists and is readable.-w
FILE
– True if theFILE
exists and is writable.-x
FILE
– True if theFILE
exists and is executable.-d
FILE
– True if theFILE
exists and is a directory.-e
FILE
– True if theFILE
exists and is a file, regardless of type (node, directory, socket, etc.).-f
FILE
– True if theFILE
exists
and is a regular file (not a directory or device).
Conclusion
The if
, if...else
and if...elif...else
statements allow you to control the flow of the Bash script’s execution by evaluating given conditions.
If the condition evaluated to false, the code in the optional else
clause will be executed.
If you have any questions or feedback, feel free to leave a comment.
terminal
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1403-04-03 13:27:03