وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

Bash Until Loops

0 3
زمان لازم برای مطالعه: 3 دقیقه


انواع مختلفی از حلقه ها وجود دارد که می توان در آنها استفاده کرد bash اسکریپت ها برای حلقه ها، حلقه های while و تا حلقه ها.

از نظر مفهومی، حلقه for باید برای حلقه زدن از طریق یک سری آیتم ها مانند حلقه زدن از طریق هر آیتم در یک آرایه یا هر فایل در یک فهرست و غیره استفاده شود. حلقه while باید تا زمانی استفاده شود که یک شرط خاص درست باشد، مانند یک شمارنده کمتر از یک مقدار حداکثر است یا زمان پینگ به سرور کمتر از آستانه یا برای همیشه است اگر در حالت TRUE یا while 1 حلقه بزنید.

حلقه while شبیه به حلقه while اما با منطق معکوس است. به جای حلقه زدن در حالی که یک شرط درست است، شرط را نادرست فرض می کنید و تا زمانی که یک شرط درست شود، حلقه می زنید. آنها در بیان منطقی برعکس یکدیگر هستند. انتخاب حلقه صحیح بین حلقه while و تا زمانی که بعداً به کد باز می‌گردید، برنامه شما برای دیگران یا خودتان خواناتر و قابل درک‌تر می‌شود.

برخی از مثال‌ها یا دلایل معمولی برای استفاده از یک تا حلقه می‌تواند باشد، تا زمانی که کاربر وارد «خروج» شود. تا زمانی که داده‌های تولید شده بیشتر از حجم داده‌های درخواستی شود، یا تا زمانی که تعدادی فایل مطابق با جستجوی شما پیدا شود، حلقه بزنید.

نحو اصلی حلقه UNTIL به شکل زیر است:

تا زمان [ CONDITION ]; انجام دادن

خطوط کد
خطوط بیشتر کد
انجام شده

پیشنهاد می‌کنیم بخوانید:  $@ در اسکریپت Bash چیست؟

حالا چند مثال بزنیم. مثال اول تا رسیدن به آستانه اندازه 1000 ضریب دو را چند برابر می کند:

#!/صندوقچه/bash
NUM=1
تا زمان [ $NUM -gt 1000 ]; انجام دادن

echo $NUM

اجازه دهید NUM=NUM*2
انجام شده

Bash Until Loops

مثال دوم به پینگ کردن یک URL ادامه می دهد تا زمانی که زمان پاسخگویی از 100 میلی ثانیه بیشتر شود:

#!/صندوقچه/bash
میلی ثانیه=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 میلی ثانیه فراتر رفت”

Bash Until LoopsBash Until Loops

مثال سوم یک فایل را می گیرد و فایل را با خودش ترکیب می کند تا اندازه آن به 1 کیلوبایت برسد:

#!/صندوقچه/bash
نام فایل=`نام پایه “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

پیشنهاد می‌کنیم بخوانید:  چگونه یک دایرکتوری را در دایرکتوری دیگری در Bash کپی کنیم روی لینوکس

خواب 1
انجام شده

echo “اندازه فایل جدید به هدف 1 کیلوبایت رسیده است”

Bash Until LoopsBash Until Loops

مثال چهارم از کاربر می خواهد تا نام خود را تایپ کند تا خروجی را برای خروج از برنامه وارد کند:

#!/صندوقچه/bash
واکنش=“FOO”

# حجم فایل را تا 1 کیلوبایت افزایش دهید
تا زمان [ $RESPONSE = “exit” ]
انجام دادن

echo -n “نام خود را وارد کنید یا “خروج” را برای خروج از این برنامه وارد کنید:

خواندن واکنش
اگر [ $RESPONSE != “exit” ]; سپس

echo “سلام $RESPONSE

فی
انجام شده

echo “از اینکه این بازی را انجام دادید متشکرم”

Bash Until LoopsBash Until Loops

نتیجه

نکته کلیدی استفاده است تا زمان زمانی که انتظار می‌رود شرط همیشه نادرست باشد و زمانی که شرط درست شد، می‌خواهید عمل حلقه زدن خود را متوقف کنید تا کد شما واضح‌تر شود. به عبارت دیگر، حلقه را ادامه دهید تا زمان در مقطعی از زمان با این دیدگاه امیدوارم شما bash اسکریپت ها می توانند واضح تر باشند و شما با این مقاله چیزی یاد گرفته اید. متشکرم.

برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-31 16:43:06

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید