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

سرور مجازی NVMe

30 مثال حلقه Bash

0 0

سرفصلهای مطلب

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


از سه نوع حلقه استفاده می شود bash برای اهداف مختلف اینها حلقه های for، while و while هستند. کاربردهای مختلف این حلقه ها با استفاده از 30 مثال مختلف در این مقاله توضیح داده شده است.

موارد استفاده از حلقه های Bash:

  1. استفاده از حلقه for برای خواندن موارد موجود در لیست
  2. استفاده از حلقه for برای خواندن آرایه
  3. استفاده از حلقه for برای خواندن لیستی از مقادیر رشته با فاصله
  4. استفاده از حلقه for در محدوده {START..END..INCREMENT}
  5. استفاده از حلقه for در محدوده {START..END..INCREMENT} به سمت عقب
  6. استفاده از حلقه for با 3 قسمت و شمارنده شرط
  7. استفاده از حلقه for با 3 قسمت و چند شرط و اکشن با کاما
  8. استفاده از حلقه Infinite for
  9. استفاده از حلقه for با استراحت شرطی و ادامه دادن
  10. استفاده از حلقه for برای خواندن نام فایل ها با globbing
  11. استفاده از حلقه for برای خواندن خروجی از دستور find
  12. استفاده از حلقه for برای خواندن نام فایل یک دایرکتوری به صورت بازگشتی
  13. استفاده از حلقه for برای خواندن نام فایل های دایرکتوری به صورت بازگشتی با شرط
  14. اجرای حلقه تا زمانی که فایل وجود داشته باشد
  15. استفاده از حلقه مبتنی بر روی خروجی فرمان لیست بسته
  16. استفاده از حلقه for برای خواندن هر خط از یک فایل
  17. استفاده از حلقه for برای خواندن هر خط از یک فایل بر اساس روی یک مسابقه مشروط
  18. استفاده از حلقه while با شمارنده
  19. استفاده از حلقه while با ورودی کاربر و خروج هنگام انتخاب خروج از منو
  20. ترکیب حلقه‌های while با getopts
  21. با استفاده از تا حلقه با شمارنده
  22. تا زمانی که بر اساس حلقه باشد خاتمه دهید روی ورودی کاربر
  23. استفاده از حلقه های Nested while
  24. استفاده از تا حلقه برای خواب/انتظار برای کار پس‌زمینه شروع شده در اسکریپت
  25. استفاده از حلقه while برای خواندن pid از خروجی ps که خاتمه نیافته است
  26. جستجوی هر رشته در یک فایل با استفاده از حلقه و خروج
  27. ترکیب کردن bash با curl برای ارزیابی داده ها از URL
  28. خواندن اطلاعات از پورت ارسال شده توسط netcat با استفاده از حلقه while
  29. پینگ URL با استفاده از حلقه
  30. اجرای بالا در حالت دسته ای با استفاده از یک حلقه و خروجی ضبط

استفاده از حلقه for برای خواندن موارد موجود در لیست

ساده ترین استفاده از ‘برای’ حلقه خواندن لیستی از رشته یا داده های عددی است. لیست داده های عددی با استفاده از آن تکرار می شود برای در در مثال زیر حلقه بزنید. در اینجا، چهار عدد در متغیر خوانده می شود، $n در هر مرحله از حلقه و چاپ شده است. ایجاد یک bash با اسکریپت زیر فایل کنید و از terminal.

#!/صندوقچه/bash
# حلقه for-in برای خواندن لیستی از اعداد
برای n که در 10 11 17 25
انجام دادن

# هر عدد را چاپ کنید

echo “شماره است $n
انجام شده

خروجی:

اسکریپت را اجرا کنید.

$ bash for1.sh

پس از اجرای اسکریپت خروجی زیر ظاهر می شود.

30 مثال حلقه Bash

برو به بالا

استفاده از حلقه for برای خواندن آرایه

هر متغیر آرایه ای حاوی لیستی از داده ها است که با استفاده از آنها می توان به راحتی تکرار کرد برای در حلقه مثال زیر استفاده از برای در حلقه برای خواندن آرایه ای از داده های رشته ای. در اینجا، هر مقدار آرایه در متغیر واکشی می شود، زبان $ و print یک پیام مبتنی بر روی زبان در هر تکرار

#!/صندوقچه/bash
زبان ها=(“Bash PERL Python PHP”)
برای زبان که در $ زبان ها
انجام دادن

اگر [ $language == ‘PHP’ ]

سپس

echo زبان $ یک زبان برنامه نویسی وب است”

دیگر

echo زبان $ یک زبان اسکریپت است”

فی
انجام شده

خروجی:

اسکریپت را اجرا کنید.

$ bash for2.sh

پس از اجرای اسکریپت خروجی زیر ظاهر می شود.

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

استفاده از حلقه for برای خواندن لیستی از مقادیر رشته با فاصله

وقتی لیستی از یک رشته توسط برای در حلقه و هر مقدار رشته حاوی فاصله است و سپس مقادیر بر اساس کلمات تقسیم می شوند روی اگر مقدار رشته با نقل قول تکی یا دوگانه نقل قول نشده باشد فاصله. مثال زیر نشان می دهد که چگونه می توان لیستی از مقادیر رشته با فاصله را خواند برای در حلقه در اینجا، یک مقدار از لیست حاوی فاصله است و با فاصله در خروجی چاپ می شود.

#!/صندوقچه/bash
حلقه #for-in برای خواندن لیست رشته ها با فاصله
برای سیستم عامل که در “اوبونتو” “لینوکس مینت” “فدورا” “CentOS”
انجام دادن

#هر رشته را چاپ کنید

echo “سیستم عامل – $os
انجام شده

خروجی:

اسکریپت را اجرا کنید.

$ bash for3.sh

در اینجا، مقدار رشته، ‘لینوکس مینت‘ به درستی چاپ شده است.

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

استفاده از حلقه for در محدوده {START..END..INCREMENT}

استفاده دیگر از برای در حلقه برای خواندن آرایه محدوده است. در مثال زیر، از یک حلقه for برای خواندن محدوده ای از داده ها از 10 تا 30 استفاده می شود که در هر مرحله 5 عدد افزایش می یابد. بعد، اسکریپت خواهد شد print اعدادی در محدوده که بر 10 بخش پذیرند.

#!/صندوقچه/bash
# یک محدوده را با استفاده از حلقه for بخوانید
برای تعداد که در {10..30..5}
انجام دادن

# بررسی کنید عدد بر 10 بخش پذیر است یا خیر

اگر (( تعداد $%10==0 ))

سپس

echo تعداد $ بر 10 بخش پذیر است

فی
انجام شده

خروجی:

اسکریپت را اجرا کنید.

$ bash for4.sh

پس از اجرای اسکریپت خروجی زیر ظاهر می شود.

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

استفاده از حلقه for در محدوده {START..END..INCREMENT} به سمت عقب

محدوده داده ها را می توان با استفاده به عقب خواند برای در حلقه ای که در آن مقدار شروع محدوده از مقدار پایانی محدوده بیشتر است. در مثال زیر، محدوده از 50 شروع می شود و به 30 ختم می شود تعداد $ در هر مرحله از حلقه 10 عدد کاهش می یابد. فیلمنامه خواهد شد print اعدادی از محدوده که بر 5 و 10 بخش پذیرند.

#!/صندوقچه/bash
echo “اعداد زیر بر 5 و 10 بخش پذیر هستند”
# یک محدوده را با استفاده از حلقه for بخوانید
برای تعداد که در {50..30..10}
انجام دادن

# بررسی کنید عدد بر 5 و 10 بخش پذیر است یا خیر

اگر (( تعداد $%5==0 && تعداد $%10==0 ))

سپس

echo -n تعداد $

فی
انجام شده
echo “انجام شده”

خروجی:

اسکریپت را اجرا کنید.

$ bash for5.sh

پس از اجرای اسکریپت خروجی زیر ظاهر می شود.

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

استفاده از حلقه for با 3 قسمت و شمارنده شرط

Bash از حلقه با سه قسمت مانند سایر زبان های برنامه نویسی استاندارد پشتیبانی می کند. قسمت اول شامل مقداردهی اولیه، قسمت دوم شامل شرط پایان و قسمت سوم شامل عملیات افزایش یا کاهش است. این حلقه عمدتاً زمانی استفاده می شود که تعداد تکرار قبلاً تعریف شده باشد. در مثال زیر، حلقه for 50 بار تکرار می شود و مجموع 1 تا 50 را محاسبه می کند. print به عنوان خروجی

#!/صندوقچه/bash
# متغیر را مقدار دهی اولیه کنید
مجموع=0
# حلقه 50 بار تکرار می شود
برای (( n=1; n<=50; n++ ))
انجام دادن

# مقدار مجموع را با مقدار بعدی n اضافه کنید

((مجموع=$ مجموع+$n))
انجام شده
# نتیجه را چاپ کنید
echo «مجموع 1 تا 50 است $ مجموع

خروجی:

اسکریپت را اجرا کنید.

$ bash for6.sh

مجموع 1 تا 50 در خروجی نشان داده شده است.

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

استفاده از حلقه for با 3 قسمت و چند شرط و اکشن با کاما

برای حلقه با سه قسمت را می توان با مقداردهی اولیه، شرایط پایان و اقدامات تعریف کرد. مثال زیر کاربرد این نوع حلقه را نشان می دهد. اینجا، x $ و $y متغیرها توسط مقداردهی اولیه می شوند 5 و 25. حلقه تا مقدار ادامه خواهد یافت x $ کمتر یا مساوی است 20 و ارزش $y بزرگتر از 5 است. مقدار x $ افزایش خواهد یافت 5 و ارزش $y کاهش خواهد یافت 5 در هر تکرار حلقه مقدار فعلی $x و $y در هر مرحله خواهد بود print به عنوان خروجی

#!/صندوقچه/bash
# حلقه بر اساس تکرار خواهد شد روی دو شرط
برای (( ایکس=5،y=25; ایکس<=20 && y>5; x+=5,y-=5 ))
انجام دادن

echo “مقدار فعلی x=x $ و y=$y
انجام شده

خروجی:

اسکریپت را اجرا کنید.

$ bash for7.sh

پس از اجرای اسکریپت خروجی زیر ظاهر می شود.

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

استفاده از حلقه Infinite for

وقتی هر حلقه ای بدون هیچ شرط پایانی تعریف می شود، حلقه به عنوان یک حلقه بی نهایت عمل می کند. مثال زیر استفاده از حلقه for infinite را نشان می دهد که شامل هیچ بخش اولیه، پایان و عمل نیست. این نوع حلقه for با دو نقطه ویرگول (; 😉 تعریف می شود. اسکریپت زیر حلقه را تا زمانی که کاربر به عنوان ورودی تایپ کند، ادامه خواهد داد. فیلمنامه خواهد شد print هر عددی از 1 تا 20 که به عنوان ورودی در نظر گرفته شود در غیر این صورت خواهد بود print “شماره خارج از محدوده است

#!/صندوقچه/bash
# حلقه بی نهایت را اعلام کنید
برای (( ; ; ))
انجام دادن

# ورودی بگیرید

echo “عددی بین 1 تا 20 وارد کنید”

خواندن n
# شرایط پایان حلقه را تنظیم کنید

اگر [ $n == “quit” ]

سپس

echo “برنامه خاتمه یافت”

خروج 0

فی

# محدوده اعداد را بررسی کنید

اگر (( $n < 1 || $n > 20 ))

سپس

echo “تعداد خارج از محدوده است”

دیگر

echo “شماره است $n

فی
انجام شده

خروجی:

اسکریپت را اجرا کنید.

$ bash for8.sh

اینجا، 6 به عنوان ورودی اول گرفته می شود که یک عدد معتبر است، 22 به عنوان ورودی دوم که یک عدد نامعتبر است و ترک کردن به عنوان ورودی سومی که اسکریپت را خاتمه داد، در نظر گرفته می شود.

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

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

استفاده از حلقه for با استراحت شرطی و ادامه دادن

ادامه هید’ دستور برای حذف برخی از بخش ها از حلقه مبتنی بر استفاده می شود روی هر شرطی وزنگ تفریح’ دستور برای پایان دادن به حلقه مبتنی بر استفاده می شود روی هر شرطی مثال زیر کاربرد این عبارات را در یک حلقه for نشان می دهد. در اینجا، حلقه برای خواندن لیستی از داده های رشته استفاده می شود و هر مقدار در لیست در متغیر ذخیره می شود. $ غذا. وقتی مقدار $food ‘Soup’ باشد، بدون چاپ مقدار به حلقه ادامه می دهد. وقتی مقدار $food ‘Pasta’ باشد، حلقه را خاتمه می دهد. وقتی $food حاوی مقداری غیر از «Soup» و «Pasta» باشد، این مقدار خواهد بود print ارزش. بنابراین، فیلمنامه خواهد شد print دو مقدار از لیست به عنوان خروجی.

#!/صندوقچه/bash
# یک حلقه با یک لیست اعلام کنید
برای غذا که در سوپ پیتزا برگر رشته فرنگی پاستا
انجام دادن

# شرط را برای ادامه تنظیم کنید

اگر [ $food == ‘Soup’ ]

سپس

ادامه هید

# شرط را برای استراحت تنظیم کنید

elif [ $food == ‘Pasta’ ]

سپس

زنگ تفریح

دیگر

echo $ غذا مورد علاقه من است”

فی
انجام شده

خروجی:

اسکریپت را اجرا کنید.

$ bash for9.sh

در اینجا دو مقدار از لیست حذف شده است. ‘سوپ“برای عبارت ادامه چاپ نشده است و”پاستا‘ برای عبارت break چاپ نمی شود.

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

استفاده از حلقه for برای خواندن نام فایل ها با globbing

نام فایل ها یا محتوای خاص یک فایل را می توان با استفاده از globbing جستجو کرد. از انواع مختلفی از کاراکترهای عام برای تطبیق هر نام فایل یا جستجوی محتوای موجود در فایل استفاده می کند. همه فایل ها با txt پسوند مکان فعلی با مثال زیر جستجو می شود. هنگامی که اسکریپت را اجرا می کنید، تمام نام فایل های منطبق بدون خط جدید به عنوان خروجی چاپ می شود.

#!/صندوقچه/bash
# Loop همه فایل‌های متنی را جستجو می‌کند و هر نام فایل را در $file ذخیره می‌کند
برای فایل که در “*.txt”;
انجام دادن

# نام فایل را چاپ کنید

echo $file;
انجام شده

خروجی:

اسکریپت را اجرا کنید.

$ bash for110.sh

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

استفاده از حلقه for برای خواندن خروجی از دستور find

پیدا کردن’ دستور برای اهداف مختلف در bash. در مثال زیر، دستور ‘find’ برای خواندن همه نام فایل های متنی از مکان فعلی استفاده می شود. اینجا، ‘-نام’ گزینه ای برای استفاده برای جستجوی حساس به حروف کوچک و بزرگ. بنابراین، فیلمنامه خواهد شد print نام فایل های مکان فعلی که دارای ‘.txt’ پسوند با هر نامی اینجا، IFS متغیر برای تعریف استفاده می شود خط جدید به عنوان جداکننده میدان و print ارزش $file در هر خط

#!/صندوقچه/bash
# جداکننده فیلد را تنظیم کنید
IFS=$‘\n’;
# فایل های یک دایرکتوری را بخوانید
برای فایل که در $(پیدا کردن -نام “*.txt”); انجام دادن

echo $file
انجام شده
جداکننده فیلد #Uunset
تنظیم نشده IFS;

خروجی:

اسکریپت را اجرا کنید.

$ bash for11.sh

پس از اجرای اسکریپت خروجی زیر ظاهر می شود.

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

استفاده از حلقه for برای خواندن نام فایل یک دایرکتوری به صورت بازگشتی

پیدا کردن’ دستور را می توان برای خواندن تمام فایل ها و زیر پوشه های یک دایرکتوری خاص استفاده کرد. مثال زیر استفاده از ‘ را نشان می دهدپیدا کردن’ دستور خواندن همه نام فایل ها و دایرکتوری ها در زیر “mydir’ فهرست راهنما. اینجا، IFS متغیر استفاده می شود print ارزش $filename با ‘خط جدید’ مانند مثال قبلی

#!/صندوقچه/bash
# جداکننده فیلد را تنظیم کنید
IFS=$‘\n’;
# فایل های یک دایرکتوری را بخوانید
برای نام فایل که در $(پیدا کردن “mydir”)
انجام دادن

echo $filename
انجام شده
# جداکننده فیلد را تنظیم نکنید
تنظیم نشده IFS;

خروجی:

اسکریپت را اجرا کنید.

$ bash for12.sh

پس از اجرای اسکریپت خروجی زیر ظاهر می شود.

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

استفاده از حلقه for برای خواندن نام فایل های دایرکتوری به صورت بازگشتی با شرط

‘برای’ حلقه با ‘پیدا کردن’ می توان از دستور استفاده کرد print som+

نام فایل های خاص یک دایرکتوری مبتنی بر روی هر شرطی ‘پیدا کردن’ دستور با یک شرط در مثال زیر استفاده شده است. این فقط نام فایل های متنی را جستجو می کند mydir فهرست راهنما. اینجا، ‘-inname’ گزینه با استفاده می شود ‘پیدا کردن’ دستور برای جستجوی مورد انگیزه یعنی تمام فایل های دارای پسوند ‘txt’ یا “TXT” مطابقت داده می شود و به عنوان خروجی چاپ می شود. اینجا، IFS متغیر استفاده می شود print ارزش $filename با ‘خط جدید’ مانند مثال قبلی

#!/صندوقچه/bash
# جداکننده فیلد را تنظیم کنید
IFS=$‘\n’;

# تمام فایل های متنی یک فهرست را بخوانید
برای نام فایل که در $(پیدا کردن mydir -نام “*.txt”); انجام دادن

echo $filename
انجام شده
# جداکننده فیلد را تنظیم نکنید
تنظیم نشده IFS;

خروجی:

دستور زیر را اجرا کنید تا لیست فایل ها و پوشه ها نمایش داده شود mydir فهرست راهنما.

$ ls mydir

اسکریپت را اجرا کنید.

$ bash for13.sh

سه فایل متنی در دایرکتوری وجود دارد که در خروجی نشان داده شده است.

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

اجرای حلقه تا زمانی که فایل وجود داشته باشد

هر نام فایلی وجود داشته باشد یا نباشد در مثال زیر با استفاده از حلقه for بی نهایت بررسی می شود. در این اسکریپت، در هر تکرار حلقه، یک نام فایل به عنوان ورودی گرفته می شود و آزمایش می کند که نام فایل در مکان فعلی وجود دارد یا خیر. اگر نام فایل وجود داشته باشد، اسکریپت وجود خواهد داشت print “فایل وجود دارد” و حلقه را ادامه دهید در غیر این صورت با چاپ پیام حلقه را خاتمه می دهد.فایل موجود نیست‘.

#!/صندوقچه/bash
# حلقه بی نهایت را تعریف کنید
برای(( ; ; ))
انجام دادن

# نام فایل را وارد کنید

echo “نام فایل را وارد کنید”

خواندن فایل

# بررسی کنید فایل وجود دارد یا نه

اگر [ ! -f $file ]

سپس

echo “نام فایل وجود ندارد”

خروج 0

دیگر

echo “فایل وجود دارد”

فی
انجام شده

خروجی:

اسکریپت را اجرا کنید.

$ bash loop14.sh

یک نام فایل موجود به عنوان ورودی اول و یک نام فایل غیر موجود به عنوان خروجی دوم داده می شود که اسکریپت را خاتمه داده است.

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

استفاده از حلقه مبتنی بر روی خروجی فرمان لیست بسته

اطلاعات مربوط به بسته های نصب شده در سیستم را می توان با دستور ` بازیابی کردapt list – -installed`. ‘برای’ حلقه در مثال زیر برای خواندن اطلاعات بسته نصب شده از دستور بسته لیست و print اطلاعات هر بسته در هر خط IFS متغیر در اینجا استفاده می شود print ارزش خط $ با ‘خط جدید’ مانند مثال قبلی

# جداکننده فیلد را تنظیم کنید
IFS=$‘\n’;
# فایل را خط به خط بخوانید
برای خط که در $(apt list –نصب شده است)
انجام دادن

echo خط $
انجام شده

# جداکننده فیلد را تنظیم نکنید
تنظیم نشده IFS

خروجی:

اسکریپت را اجرا کنید.

$ bash for15.sh

خروجی لیست بسته های نصب شده را نشان می دهد.

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

استفاده از حلقه for برای خواندن خطوط یک فایل

راه های زیادی برای خواندن یک فایل در آن وجود دارد bash. ‘گربه’ از دستور در مثال زیر برای خواندن فایل استفاده شده است temp.txt. هر خط از فایل در متغیر ذخیره می شود، خط $ و print خط در هر تکرار از برای حلقه IFS متغیر در اینجا استفاده می شود print ارزش خط $ با ‘خط جدید’ مانند مثال قبلی

#!/صندوقچه/bash
# جداکننده فیلد را تنظیم کنید
IFS=$‘\n’;

# فایل را خط به خط بخوانید
برای خط که در $(گربه temp.txt)
انجام دادن

echo خط $
انجام شده
# جداکننده فیلد را تنظیم نکنید
تنظیم نشده IFS

خروجی:

اسکریپت را اجرا کنید.

$ bash for16.sh

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

استفاده از حلقه for برای خواندن خطوط یک فایل با تطابق شرطی

اگر شما می خواهید print خطوط خاصی از یک فایل تنها پس از آن باید داخل حلقه ای که برای خواندن فایل استفاده می شود اضافه کنید. مثال زیر خروجی فرمت شده هر خط را چاپ می کند ‘weekday.txt’ مبتنی بر فایل روی یک شرط اگر هر خطی از فایل حاوی مقدار باشد، “یکشنبه” سپس آن را انجام خواهد داد print پیام “تعطیلات” در غیر این صورت خواهد بود print ‘روز کاری’ پیام

# فایل را بخوانید
برای خط که در $(گربه weekday.txt)
انجام دادن

#مقدار را با داده های رشته ای مقایسه کنید

اگر [ $line == “Sunday” ]

سپس

echo خط $ تعطیلات است”

دیگر

echo خط $ یک روز کاری است”

فی
انجام شده

خروجی:

اسکریپت را اجرا کنید.

$ bash for17.sh

پس از اجرای اسکریپت خروجی زیر ظاهر می شود.

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

استفاده از حلقه while با شمارنده

شمارنده $ متغیر از هر حلقه ای برای کنترل تکرار حلقه استفاده می شود. مثال زیر استفاده از حلقه while با شمارنده را نشان می دهد. اینجا، شمارنده $ به 1 مقداردهی اولیه می شود و حلقه while تکرار می شود 5 بار و print ارزش شمارنده $ در هر تکرار $counter در هر مرحله 1 افزایش می یابد تا به شرط پایان حلقه برسد.

#!/صندوقچه/bash
# مقداردهی اولیه کنید
پیشخوان=1

# حلقه را 5 بار تکرار کنید
در حالی که [ $counter -le 5 ]
انجام دادن

echo “مقدار متقابل = شمارنده $

((شمارنده ++))
انجام شده

خروجی:

اسکریپت را اجرا کنید.

$ bash loop18.sh

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

استفاده از حلقه while با ورودی کاربر و خروج هنگام انتخاب خروج از منو

‘در حالی که’ حلقه در مثال زیر برای نمایش منوی 5 گزینه ای استفاده شده است. چهار گزینه اول برای انجام چهار عملیات حسابی بر اساس استفاده می شود روی ورودی کاربر و آخرین گزینه برای خروج از اسکریپت استفاده می شود. منو پس از ارائه دو عدد به عنوان ورودی ظاهر می شود. اگر کاربر “1” را انتخاب کند، اعداد ورودی اضافه خواهند شد. اگر کاربر “2” را انتخاب کند، عدد ورودی دوم از عدد ورودی اول کم می شود. اگر کاربر «3» را انتخاب کند، اعداد ورودی ضرب می‌شوند و اگر کاربر «4» را انتخاب کند، اولین عدد ورودی بر عدد ورودی دوم تقسیم می‌شود.

#!/صندوقچه/bash
# دو عدد بگیرید
echo “شماره ای را وارد کنید”
خواندن n1
echo “شماره ای را وارد کنید”
خواندن n2

# یک حلقه بی نهایت را اعلام کنید
در حالی که درست است، واقعی
انجام دادن

# نمایش منو

echo “1. اضافه”

echo “2. تفریق”

echo “3. ضرب”

echo “4. تقسیم”

echo “5. خروج”

echo -n “هر شماره ای را انتخاب کنید [1-5]:”

خواندن ورودی

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

اگر [[ $input -eq “1” ]]

سپس

((نتیجه=n1+n2))

elif [[ $input -eq “2” ]]

سپس

((نتیجه=n1-n2))

elif [[ $input -eq “3” ]]

سپس

((نتیجه=n1 دلار*n2 دلار))

elif [[ $input -eq “4” ]]

سپس

((نتیجه=n1 دلار/n2 دلار))

elif [[ $input -eq “5” ]]

سپس

خروج 0

دیگر

echo “ورودی نامعتبر”

فی

echo “نتیجه این است $نتیجه
انجام شده

خروجی:

اسکریپت را اجرا کنید.

$ bash loop19.sh

پس از انتخاب گزینه 2 و 5 خروجی زیر ظاهر می شود.

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

ترکیب حلقه‌های while با getopts

گرفتن یک تابع ساخته شده از bash که برای خواندن آرگومان ها و گزینه ها در bash اسکریپت مثال زیر استفاده از می گیرد تابعی که در حلقه while استفاده می شود. در اینجا، سه مقدار گزینه با استفاده می شود می گیرد. اینها هستند ‘آ’، ‘r’ و ‘ج‘. سه پیام مختلف برای این گزینه ها چاپ خواهد شد.

#!/صندوقچه/bash

پیشنهاد می‌کنیم بخوانید:  Awk Trim Space

# گزینه را بخوانید و در یک متغیر ذخیره کنید
در حالی که می گیرد “قوس” گزینه؛ انجام دادن

# مقدار گزینه را بررسی کنید

مورد ${گزینه} که در

آ ) #گزینه الف

echo “فرآیند متوقف شد”

;;

r ) #گزینه r

echo “فرآیند دوباره شروع شد”

;;

ج ) #گزینه ج

echo “روند ادامه دارد”

;;

) #گزینه نامعتبر

echo “استفاده کنید: [-a] یا [-r] یا [-c]”

;;

اساک
انجام شده

خروجی:

اسکریپت را با گزینه های معتبر اجرا کنید.

$ bash loop20.sh –arc

اسکریپت را با یک گزینه نامعتبر اجرا کنید.

$ bash loop20.sh -h

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

با استفاده از تا حلقه با شمارنده

تا حلقه را می توان با یک شمارنده مانند حلقه while که قبلا نشان داده شده است استفاده کرد. مثال زیر استفاده از حلقه while را با شمارنده نشان می دهد. اینجا، شمارنده $ متغیر برای کنترل تکرار حلقه ای که به 1 مقداردهی اولیه شده است استفاده می شود. شمارنده $ به 5. بنابراین، حلقه 6 بار تکرار می شود و print ارزش شمارنده $ در هر مرحله $counter در هر مرحله 1 کاهش می یابد تا به شرایط پایان حلقه برسد.

#!/صندوقچه/bash
# شمارنده را مقداردهی اولیه کنید
پیشخوان=10

# حلقه را 6 بار تکرار کنید
تا زمان [ $counter -lt 5 ]
انجام دادن

echo “مقدار فعلی شمارنده = شمارنده $

((پیشخوان–))
انجام شده

خروجی:

اسکریپت را اجرا کنید.

$ bash loop21.sh

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

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

هر حلقه ای بر اساس خاتمه می یابد روی یک شرایط خاص چگونه تا زمانی که حلقه را می توان بر اساس خاتمه داد روی ورودی کاربر، در مثال زیر نشان داده شده است. با توجه به شرط پایان، حلقه زمانی خاتمه می یابد که مقدار از $شماره بزرگتر است از 50. مقدار $number در داخل حلقه افزایش نمی یابد. بنابراین، حلقه به دریافت ورودی از کاربر تا تعداد بیش از بیشتر ادامه خواهد داد 50 به عنوان ورودی گرفته می شود.

#!/صندوقچه/bash
# مقدار دهی اولیه
عدد=0
# الگوی داده های عددی را تنظیم کنید
الگو=‘^[0-9]+$’
# شرط خاتمه را تنظیم کنید
تا زمان [ $number -gt 50 ]
انجام دادن

echo -n “شماره ای را وارد کنید:”

خواندن عدد
# بررسی کنید مقدار ورودی عدد باشد یا خیر

اگر ! [[ $number =~ $pattern ]]

سپس

echo “خطا: عددی نیست”

عدد=0

دیگر

echo “شما وارد شده اید $شماره

فی
انجام شده

خروجی:

اسکریپت را اجرا کنید.

$ bash loop22.sh

اسکریپت دوباره حلقه را برای مقدار ورودی تکرار می کند 4، پیام خطای مقدار ورودی را نمایش می دهد، gg و حلقه را برای مقدار ورودی خاتمه دهید 54.

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

استفاده از حلقه های Nested while

هنگامی که یک حلقه در داخل یک حلقه دیگر اعلام می شود، به آن حلقه بی نهایت می گویند. مثال زیر استفاده از حلقه while تودرتو را نشان می دهد. در اینجا اولین حلقه while 2 بار و حلقه while دوم در داخل حلقه اول سه بار تکرار می شود. کل تکرار حلقه ها 2×3=6 بار است. متغیرهای $i و $j برای کنترل تکرار این حلقه‌ها استفاده می‌شوند و مقادیر این متغیرها در هر مرحله به عنوان خروجی چاپ می‌شوند.

#!/صندوقچه/bash

# i و j را مقداردهی کنید
من=1
j=1
# شرط خاتمه را برای i تنظیم کنید
در حالی که [ $i -le 2 ]
انجام دادن

# شرط پایان را برای j تنظیم کنید

در حالی که [ $j -le 3 ]

انجام دادن

# مقدار فعلی i و j را چاپ کنید

printf “i=%d، j=%d\n $i $j

((j++))

انجام شده

j=1

((i++))
انجام شده

خروجی:

اسکریپت را اجرا کنید.

$ bash loop23.sh

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

استفاده از تا حلقه برای خواب/انتظار برای کار پس‌زمینه شروع شده در اسکریپت

هر process با استفاده از ‘ می توان در پس زمینه اجرا کرد&’ سمبل. چگونه یک process را می توان در پس زمینه با استفاده از حلقه اجرا کرد و بر اساس حلقه خاتمه داد روی زمان مشخص شده در دستور خواب در این مثال نشان داده شده است. در اینجا از متغیر $cnt برای پایان دادن به حلقه استفاده می شود. حلقه پس زمینه را شروع می کند process و خروجی را در یک فایل متنی به نام “output.txt” به مدت 1 ثانیه پس از آن، شرط پایان حلقه بررسی می شود و false برمی گردد. بعد، اسکریپت خواهد شد print یک پیام، “خوابیدن…” و بعد از 3 ثانیه از اسکریپت خارج شوید.

#!/صندوقچه/bash
# مقداردهی اولیه کنید
cnt=1
# شرط خاتمه را تنظیم کنید
تا زمان [ $cnt -ge 1000 ]
انجام دادن

echo “زمینه process در حال اجراست”;
# 1 ثانیه صبر کنید

خواب 1;
((cnt++))
انجام شده > output.txt &
# 3 ثانیه صبر کنید
echo “خوابیدن…”
خواب 3

خروجی:

اسکریپت را اجرا کنید.

$ bash loop24.sh

خروجی اسکریپت را بررسی کنید.

$ گربه output.txt

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

استفاده از حلقه while برای خواندن pid از خروجی ps که خاتمه نیافته است

ps’ دستور برای به دست آوردن اطلاعات در مورد تمام فرآیندهای در حال اجرا سیستم استفاده می شود. اطلاعات جزئی را ارائه می دهد روی هر دویدن process مانند شناسه کاربر، PID، استفاده از cpu، استفاده از حافظه و غیره. مثال زیر نشان می دهد که چگونه می توان از حلقه while برای خواندن در حال اجرا استفاده کرد. process اطلاعات مربوط به ‘apache’ در اینجا از متغیر IFS استفاده می شود print PID هر کدام process با خط جدید سپس منتظر می ماند تا کاربر هر کلیدی را برای خروج از اسکریپت فشار دهد.

#!/صندوقچه/bash
# جداکننده فیلد را تنظیم کنید
IFS=“”
در حالی که [ true ]
انجام دادن

# همه در حال اجرا را بازیابی کنید process شناسه آپاچی

pid=`ps -ef | grep “آپاچی” | بیخیال ‘{print 2 دلار process در حال اجراست …” }’`

echo $pid

# 1 ثانیه صبر کنید

خواب 1

# هر کلیدی را فشار دهید تا حلقه خاتمه یابد

echo “هر کلیدی را برای خاتمه فشار دهید”

اگر خواندن -r 1 ; سپس

زنگ تفریح

فی
انجام شده
# جداکننده فیلد را تنظیم نکنید
تنظیم نشده IFS

خروجی:

اسکریپت را اجرا کنید.

$ bash loop25.sh

PID همه در حال اجرا process مستقر روی ‘آپاچی‘ در خروجی نشان داده شده است.

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

جستجوی هر رشته در یک فایل با استفاده از حلقه و خروج

یک فایل به نام ایجاد کنید month.txt با محتوای زیر برای تست bash اسکریپت ارائه شده در زیر

month.txt

ژانویه
فوریه
مارس
آوریل
ممکن است
ژوئن
جولای
اوت
سپتامبر
اکتبر
نوامبر
دسامبر

‘در حالی کهحلقه ‘ در مثال زیر برای خواندن استفاده می شود month.txt فایل خط به خط اگر هر خطی حاوی مقدار باشد، ‘ژوئنآنوقت خواهد شد print “از تعطیلات تابستانی لذت ببرید” و از اسکریپت خاتمه دهید در غیر این صورت خواهد شد print ارزش خط $.

#!/صندوقچه/bash
# نام فایل را برای خواندن تنظیم کنید
نام فایل=“month.txt”
# فایل را خط به خط بخوانید
در حالی که IFS= خواندن -r خط
انجام دادن

# بررسی کنید که مقدار خط برابر با ژوئن باشد

# اگر شرط درست است برنامه را خاتمه دهید

اگر [[ $line == “June” ]];
سپس

echo “از تعطیلات تابستانی لذت ببرید”

خروج 0

دیگر

echo خط $

فی
انجام شده < $filename

خروجی:

اسکریپت را اجرا کنید.

$ bash loop26.sh

اینجا، ‘ژوئن‘ در فایل وجود دارد month.txt که حلقه را خاتمه می دهد. بنابراین، نام ماه های دیگر پس از ‘ژوئن‘ توسط حلقه خوانده نمی شود.

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

ترکیب کنید bash با curl برای ارزیابی داده ها از URL

داده ها را می توان به یا از هر سرور شبکه در داخل منتقل کرد bash با استفاده از ‘حلقه’ دستور با هر پروتکل پشتیبانی شده مانند HTTP، FTP، TELNET و غیره command-line ابزار چگونهحلقه’ دستور را می توان برای ارزیابی داده ها از URL با استفاده استفاده کرد برای حلقه در مثال زیر نشان داده شده است. اینجا، برای حلقه فهرستی از url را می خواند و هر مقدار URL را در curl and ارسال می کند print داده های دریافت شده از URL

#!/صندوقچه/bash
# هر URL را از لیست بخوانید
برای آدرس اینترنتی که در “yahoo.com” “youtube.com”
انجام دادن

# کد پاسخ HTTP را برای هر URL چاپ کنید

echo $url; حلقه -v -m 5 -s 1 دلار $url | grep HTTP/1.1;
انجام شده

خروجی:

اسکریپت را اجرا کنید.

$ bash loop27.sh

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

خواندن اطلاعات از پورت ارسال شده توسط netcat با استفاده از حلقه while

نت کت دستور برای خواندن و نوشتن داده ها در شبکه با استفاده از استفاده می شود tcp یا udp پروتکل ‘ncدستور ‘ در استفاده می شود bash دویدننت کت‘ فرمان مثال زیر استفاده از ‘ را نشان می دهدncفرمان در حلقه while. در اینجا، اسکریپت سعی می کند با پورت ارتباط برقرار کند 1234 استفاده کردن nc دستور می دهد و خواهد شد print یک پیام در دیگری terminal اگر بتواند وصل شود باید دیگری را باز کنید terminal پنجره یا تب برای اجرای فرمان،nc localhost 1234‘ برای ایجاد ارتباط پس از برقراری ارتباط، هر پیامی را می توان از یکی منتقل کرد terminal به دیگری terminal.

#!/صندوقچه/bash
echo “استماع روی پورت 1234 …”
# پیام ارسال شده توسط netcat را در پورت 1234 بخوانید
در حالی که خواندن متن
انجام دادن

# اگر پیام دریافتی “خروج” است حلقه را خاتمه دهید

اگر [ $text == ‘quit’ ]; سپس

echo “خدا حافظ”

زنگ تفریح

دیگر

echo $text

فی
# هنگام اتصال پورت، پیام را چاپ کنید
انجام شده < <((printf “خوش آمدی.\r\nیک پیام تایپ کنید:”) | nc 1234)

خروجی:

اسکریپت را در a اجرا کنید terminal برای شروع گوش دادن در پورت 1234.

$ bash loop28.sh

30 مثال حلقه Bash30 مثال حلقه Bash

بعد، دیگری را باز کنید terminal و دستور زیر را برای برقراری ارتباط اجرا کنید

اولین terminal.

$ nc localhost 1234

در مرحله دوم پیام خوشامدگویی را نشان خواهد داد terminal. اگر کاربر چیزی را در دومی تایپ کند terminal سپس در قسمت اول نمایش داده خواهد شد terminal. زمانی که کاربر تایپ خواهد کرد “ترک” در دوم terminal سپس اسکریپت با نمایش یک پیام خاتمه می یابد،خدا حافظ’ در ابتدا terminal.

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

پینگ URL با استفاده از یک حلقه

شما می توانید با اجرای دستور ‘ping’ با URL سایت متوجه زنده بودن یا نبودن هر وب سایتی شوید. دستور ‘ping’ با ‘google.com’ در مثال زیر برای بررسی اینکه آیا اتصال اینترنت کار می کند یا نه استفاده می شود. حلقه while 5 بار در اسکریپت تکرار می شود و سعی می کند google.com را پینگ کند. اگر سرور پاسخ دهد، پاسخ می دهد print “اینترنت کار می کند” و حلقه را خاتمه دهید. اگر حلقه 5 بار تکرار شود و هیچ پاسخی از سرور دریافت نکند، انجام خواهد شد print “بدون اتصال به اینترنت“.

#!/صندوقچه/bash
# شمارنده را تنظیم کنید
شمردن=5
در حالی که [[ $count -ne 0 ]]
انجام دادن

# سعی کنید google.com را پینگ کنید

پینگ 1 google.com
ج=دلار؟

# کد وضعیت را بررسی کنید

اگر [[ $c -eq 0 ]]

سپس

echo “اینترنت کار می کند”

خروج 0

فی

# شمارنده را کاهش دهید

((شمردن–))
انجام شده
echo “بدون اتصال به اینترنت”

خروجی:

اسکریپت را اجرا کنید.

$ bash loop29.sh

اگر اتصال اینترنت شما به درستی کار کند، خروجی مشابهی دریافت خواهید کرد.

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

اجرای بالا در حالت دسته ای با استفاده از یک حلقه و خروجی ضبط

بالافرمان یک ابزار مدیریتی لینوکس است که برای بررسی استفاده از منابع سیستم، مدیریت وظایف مختلف و نظارت بر فرآیندهای در حال اجرا استفاده می شود. چگونه می توانید بدویدبالادستور ‘ در حالت دسته ای با استفاده از حلقه for و ذخیره رکوردها در یک فایل متنی در مثال زیر نشان داده شده است. اینجا، از گزینه برای شروع ‘ استفاده می شودبالافرمان در حالت دسته ای و از گزینه برای تنظیم استفاده می شود process شناسه ای که می خواهید نظارت کنید خروجی از ‘بالافرمان در ذخیره می شود output.txt فایل.

#!/صندوقچه/bash
حلقه # 5 بار تکرار می شود و دستور بالا را اجرا می کند
برای ((من=0; من<5; i++))
انجام دادن

بالا 2875 -n1 | دم -1 >> output.txt
انجام شده

خروجی:

ابتدا دستور زیر را اجرا کنید تا لیست فرآیندهای در حال اجرا را پیدا کنید.

$ ps

حالا اسکریپت را اجرا کنید.

$ bash loop30.sh

برای مشاهده خروجی اسکریپت دستور زیر را اجرا کنید.

$ گربه output.txt

30 مثال حلقه Bash30 مثال حلقه Bash

برو به بالا

نتیجه

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

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

زمان انتشار: 1402-12-31 14:51:04

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

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

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