در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش حلقه های تکرار در اسکریپت نویسی لینوکس

شرط در Shell scripting:


سلام خدمت دوستان عزیز در سایت ITpro با بخش دیگری از سری آموزش های اسکریپت نویسی در Bash در خدمت شما دوستان عزیز هستم، در این قسمت در خصوص دستورات شرطی با هم صحبت خواهیم کرد.

دستور if:


یکی از پرکاربرد ترین دستورات در Shell scripting دستور شرطی است به نام if که کاربرد آن در شکل زیر مشاهده می کنید:
حلقه if


همانطوی که مشاهده می کنید بخش اصلی این دستور شرطی است که در براکت قرار گرفته ، دستورات تست کردن در بخش قبلی توضیح داده شده است، این بخش در براکت قرار می گیرد، در صورتی شرط تست درست باشد فرمان بعد از آن اجرا شده و در صورتی خطا در تصدیق شرط به به FI منتقل می شوید، این دستور با if شروع شده و به fi خاتمه پیدا خواهد کرد. در قسمتی از کد زیر با این فرمانها آشنا می شوید:
if test -f /file/exists
 then
		command1
		command2
		...
		commandN
fi


حالت if lese :


در حالت بالا اگر شرط درست نباشد هیچ بخشی راه اندازی نمی شود مگر شما از else هم استفاده کنید، فرض کنید اسکریپتی را قصد دارید بنویسید که در صورتی که کاربر مقدار را اشتباه وارد کند به آن اخطار دهد برای این منظور باید از ساختار if..else..fi استفاده کنید که شبه کد این برنامه را در زیر مشاهده می کنید:

if test var -eq val
then
command executed successfully
else
if command failed then
execute all commands up to fi
fi


یکی از تفاوت های اصلی این شبه کد با شبه کد بالا اضافه شدن then بعد از شرط است و در صورتی درستی شرط دستورات موجود در بخش بین then تا lese اجرا می شود و در صورتی که شرط درست نباشد دستورات بعد از else تا fi اجرا می شود و بعد از fi هم شرط تمام شده و حلقه پایان می پذیرد، در زیر یک مثال از این بخش را مشاهده می کنید:

#!/bin/bash
read -p "Enter a password" pass
	if test "$pass" = "jerry"
then
		echo "Password verified."
else
		echo "Access denied."
fi

حلقه While:


این مدل از حلقه تا زمانی اجرا می شود که شرط داخل حلقه درست باشد، فرض کنید که اسکریپتی نوشته اید که تا با استفاده از فرمان ping روشن بودن یک آدرس ip را چک می کند و در صورتی که جوابی از سمت سرور ارسال نشود از حلقه خارج شده و با ارسال پیغام به سمت مدیر سیستم وضعیت را اعلام کند، این حلقه در شکل زیر نمایش داده شده است:
حلقه while


در این نوع از حلقه هم شما نیاز به داشتن شرط دارید، برای این منظور که حلقه به صورت بی نهایت ادامه پیدا نکند باید محدوده ای در این حلقه تعیین کنید، شبه کد این برنامه به صورت زیر است:

while [ condition ]
do
   command1
   command2
   command3
done


برای مثال برای نمایش 5 بار یک متن در خروجی فرمان زیر را اجرا کنید:

#!/bin/bash
n=1
while [ $n -le 5 ]
do
	echo "Welcome $n times."
	n=$(( n+1 ))	 
done


در قدم اول مقدار متغییر n را یک تعیین می کنیم. بعد شرط حلقه تا عدد 5 ادامه پیدا می کند و با هر با اجرا حلقه یک عدد به متغییر n اضافه می شود تا به شرط حلقه برسد.

حلقه For:


این حلقه برای انجام دادم تکراری یک سری اعمال استفاده می شود، برای مثال شما قصد دارید که به تعدادی مشخض یک پیغام را در خروجی تایپ کنید این حلقه به صورت زیر است( این حلقه فقط برای sh و Bash ایجاد شده است )

#!/bin/bash 
for i in 1 2 3 4 5 ;
do 
echo "Welcome $i times" 
done


مثال های یک خطی از For:


شما می توانید در یک خط هم از for به صورت زیر استفاده کنید:
#for i in 1 2 3 4; do ping -c 1 192.168.0.$i; done
#for i in 1 2 3 4; do ping -c 1192.168.0.$i; done | grep -B 2 loss
#for i in 1 2 3 4; do ping -c 1 192.168.0.$i; done | grep time


#شل_اسکریپت_نویسی_در_لینوکس #حلق_های_تکرار_در_شل #دوره_آموزشی_شل_اسکریپتینگ
4 نظر
amirsajadmaleki

-le و -eq منظور از این دوتا چیست ؟

محمد عابدینی

سلام دوست عزیز داخل این مقاله در مورد توضیح دادم

https://network.tosinso.com/tutorials/35824/%d9%81%d8%b1%d9%85%d8%a7%d9%86-test-
amirsajadmaleki

ببخشید استاد من این مقاله رو ندیده بودم

محمد عابدینی

خواهش می کنم

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....