از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
Bash Until Loops
انواع مختلفی از حلقه ها وجود دارد که می توان در آنها استفاده کرد bash اسکریپت ها برای حلقه ها، حلقه های while و تا حلقه ها.
از نظر مفهومی، حلقه for باید برای حلقه زدن از طریق یک سری آیتم ها مانند حلقه زدن از طریق هر آیتم در یک آرایه یا هر فایل در یک فهرست و غیره استفاده شود. حلقه while باید تا زمانی استفاده شود که یک شرط خاص درست باشد، مانند یک شمارنده کمتر از یک مقدار حداکثر است یا زمان پینگ به سرور کمتر از آستانه یا برای همیشه است اگر در حالت TRUE یا while 1 حلقه بزنید.
حلقه while شبیه به حلقه while اما با منطق معکوس است. به جای حلقه زدن در حالی که یک شرط درست است، شرط را نادرست فرض می کنید و تا زمانی که یک شرط درست شود، حلقه می زنید. آنها در بیان منطقی برعکس یکدیگر هستند. انتخاب حلقه صحیح بین حلقه while و تا زمانی که بعداً به کد باز میگردید، برنامه شما برای دیگران یا خودتان خواناتر و قابل درکتر میشود.
برخی از مثالها یا دلایل معمولی برای استفاده از یک تا حلقه میتواند باشد، تا زمانی که کاربر وارد «خروج» شود. تا زمانی که دادههای تولید شده بیشتر از حجم دادههای درخواستی شود، یا تا زمانی که تعدادی فایل مطابق با جستجوی شما پیدا شود، حلقه بزنید.
نحو اصلی حلقه UNTIL به شکل زیر است:
خطوط کد
خطوط بیشتر کد
انجام شده
حالا چند مثال بزنیم. مثال اول تا رسیدن به آستانه اندازه 1000 ضریب دو را چند برابر می کند:
NUM=1
تا زمان [ “$NUM“ -gt 1000 ]; انجام دادن
echo $NUM
اجازه دهید NUM=NUM*2
انجام شده
مثال دوم به پینگ کردن یک URL ادامه می دهد تا زمانی که زمان پاسخگویی از 100 میلی ثانیه بیشتر شود:
میلی ثانیه=0
# تا زمانی که کندتر از 1000 میلی ثانیه شود پینگ می کنیم
تا زمان [ $MILLISECONDS -gt 1000 ]
انجام دادن
# پینگ را اجرا کنید و خطی که زمان پینگ دارد را استخراج کنید که به time=XXXX میلیثانیه ختم میشود
خروجی=`پینگ -ج 1 google.com | grep زمان | بیخیال -اف= ‘{ print $NF }’`
echo “زمان پینگ: $OUTPUT“
# تعداد میلی ثانیه از رشته را به عنوان عدد صحیح استخراج کنید
میلی ثانیه=`echo $OUTPUT | بیخیال ‘{ print $1 }’ | بیخیال -اف. ‘{ print $1 }’ `
echo “تعداد ms = میلی ثانیه دلار“
خواب 1
انجام شده
echo “زمان پینگ از 1000 میلی ثانیه فراتر رفت”
مثال سوم یک فایل را می گیرد و فایل را با خودش ترکیب می کند تا اندازه آن به 1 کیلوبایت برسد:
نام فایل=`نام پایه “0$”`
echo $FILENAME
TMP_FILE=“./tmp1”
TARGET_FILE=“./هدف”
گربه $FILENAME > $TARGET_FILE
حجم فایل=0
# حجم فایل را تا 1 کیلوبایت افزایش دهید
تا زمان [ $FILESIZE -gt 1024 ]
انجام دادن
# این فایل را به محتوای فایل هدف اضافه کنید
cp $TARGET_FILE TMP_FILE $
گربه TMP_FILE $ >> $TARGET_FILE
حجم فایل=`du $TARGET_FILE | بیخیال ‘{ print $1 }’`
echo “حجم فایل: $FILESIZE“
خواب 1
انجام شده
echo “اندازه فایل جدید به هدف 1 کیلوبایت رسیده است”
مثال چهارم از کاربر می خواهد تا نام خود را تایپ کند تا خروجی را برای خروج از برنامه وارد کند:
واکنش=“FOO”
# حجم فایل را تا 1 کیلوبایت افزایش دهید
تا زمان [ “$RESPONSE“ = “exit” ]
انجام دادن
echo -n “نام خود را وارد کنید یا “خروج” را برای خروج از این برنامه وارد کنید:
خواندن واکنش
اگر [ “$RESPONSE“ != “exit” ]; سپس
echo “سلام $RESPONSE“
فی
انجام شده
echo “از اینکه این بازی را انجام دادید متشکرم”
نتیجه
نکته کلیدی استفاده است تا زمان زمانی که انتظار میرود شرط همیشه نادرست باشد و زمانی که شرط درست شد، میخواهید عمل حلقه زدن خود را متوقف کنید تا کد شما واضحتر شود. به عبارت دیگر، حلقه را ادامه دهید تا زمان در مقطعی از زمان با این دیدگاه امیدوارم شما bash اسکریپت ها می توانند واضح تر باشند و شما با این مقاله چیزی یاد گرفته اید. متشکرم.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-31 16:43:06