اسکریپت نویسی شل لینوکس برای وبمسترها – قسمت۳

در قسمت قبل با نحوه ویرایش فایل ها با استفاده از دستور sed  آشنا شدیم, که کمک میکرد فایل های کانفیگ سرویس های مختلف را به طور خودکار ویرایش کنیم.

در این قسمت به بررسی عبارات شرطی میپردازیم.

linuxShellFor WEbmasters

اسکریپت نویسی شل لینوکس برای وبمسترها – قسمت۳

ساده ترین دستور شرطی, دستور if است ساختار کلی آن به صورت مقابل میباشد:

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

و ساده ترین صورت آن به این شکل خواهد بود:

if [ expression ]
then
   Statement(s)
fi
  1. نشانگر شرطی است که باید بررسی شود, و statement دستور یا دستوراتی است که در صورت صحت expression  باید اجرا شود.

شرط میتواند به صورت زیر باشد:

if [ “$AGE” -lt 20 ]

then

   echo “you are too young”

یعنی اگر مقدار متغیر AGE کمتر از ۲۰ باشد(less than)    با استفاده از دستور echo متن مورد نظر را چاپ میکند.

عباراتی مثل –lt برای مقایسه های مختلف بین مقادیر میباشند, برخی از مهم ترین عبارات مقایسه را در زیر مشاهده میکنید:

مقایسه

-eq

equal to

برابر با

-ne

not equal to

نا برابر با

-lt

less than

کوچکتر از

-le

less than or equal to

کمتر یا برابر

-gt

greater than

بزرگتر از

-ge

greater than or equal to

بزرگتر یا مساوی

فایل :

-s

file exists and is not empty

فایل وجود دارد و خالی نیست

-f

file exists and is not a directory

فایل وجود دارد و دایرکتوری نیست

-d

directory exists

دایرکتوری وجود دارد

-x

file is executable

فایل اجرایی است

-w

file is writable

فایل قابل نوشتن است

-r

file is readable

فایل قابل خواندن است

“و”,”یا”:

شاید بخواهید در شرط هایتان چند مورد را بررسی کنید, در این مواقع از علامت || برای “یا” ی منطقی و && برای “و” منطقی استفاده میکنیم.

مثلا در صورتی که میخواهید بررسی کنید یک فایل هم قابل خواندن و هم قابل نوشتن میباشد, اسکریپت به صورت زیر خواهد بود:

if [ -r “file” ] && [ -w “file” ]; then

        echo “Able To Read and Write.”

Fi

به آخرین مثال توجه کنید»

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

نظر

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *