if ( dina_opt( 'show_head_banner' ) ) { dina_header_banner(); } ?>

آموزش اسکریپت نویسی لینوکس (انتخاب‌ها case و select)

بازدید: 201 بازدید
آموزش اسکریپت نویسی لینوکس (انتخاب‌ها case و select)

آموزش اسکریپت نویسی لینوکس (انتخاب‌ها case و select)

گاهی اوقات می‌خواهید برنامه‌ای منطقی بر مبنای محتوای یک متغیر بسازید.

این می‌تواند با گرفتن انشعاب‌های مختلف یک جمله if بر اساس نتایج حاصل از بررسی یک glob پیاده‌سازی شود:

shopt -s extglob

آموزش اسکریپت نویسی لینوکس (انتخاب‌ها case و select)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

اما این همه مقایسه یک مقدار اضافی است BASH یک کلمه ‌کلیدی به نام case دقیقا برای چنین وضعیت‌هایی فراهم نموده است.

یک جمله case اساسا چندین احتمال الگوهای جانشین را به شمار می‌آورد و محتوای پارامتر شما را نسبت به آنها بررسی می‌کند:

آموزش اسکریپت نویسی لینوکس (انتخاب‌ها case و select)

 

 

 

 

 

 

 

 

 

 

 

 

هر انتخاب در جمله case شامل یک الگو (یا لیستی از الگوها با کاراکتر | بین آنها)، یک پرانتز سمت راست، یک بلوک کد که در صورت انطباق رشته با یکی از نمونه‌ها باید اجرا بشود

و دو کاراکتر سمی‌کالن برای علامت‌گذاری انتهای کد (چون ممکن است لازم شود کد را در چند سطر بنویسید.) case انطباق نمونه‌ها را موقعی‌ که یک مورد موفق است، متوقف می‌کند.

سپس می‌توانیم از الگوی * در انتها برای انطباق با هرحالت دیگری که موارد انتخاب ذکر شده را در بر نمی‌گیرد، به کار ببریم.

و در پایان نیز کلمه‌ کلیدی esac.

یک ساختار دیگر برای انتخاب، ساختار select می‌باشد.

که مشابه یک حلقه است، این جمله‌ای برای سهولت ایجاد منویی از انتخابها می‌باشد، که کاربر می‌تواند از میان آنها گزینش کند.

به کاربر انتخاب هایی ارائه می‌شود و از او درخواست می‌شود یک عدد منعکس کننده انتخابش را وارد کند.

سپس کد داخل بلوک select با متغیری که با انتخاب کاربر تنظیم می‌شود اجرا می‌شود.

اگر انتخاب کاربر معتبر نباشد، محتوای متغیر تهی می‌شود:

اگر انتخاب کاربر معتبر نباشد، محتوای متغیر تهی می‌شود:

 

 

 

 

 

 

 

تا موقعی که دستور break اجرا نشده است، منو باز تولید می‌شود.

در این مثال دستور break فقط وقتی اجرا می‌شود که کاربر مورد صحیح را انتخاب نماید.

همچنین می‌توانیم از متغیر PS3 برای تعیین اعلانی که کاربر به آن پاسخ می‌دهد استفاده کنیم.

به جای نشان دادن پرسش قبل از اجرای جمله select، می‌توانیم تنظیم سؤال را به عنوان اعلان انتخاب کنیم:

همچنین می‌توانیم از متغیر PS3 برای تعیین اعلانی که کاربر به آن پاسخ می‌دهد استفاده کنیم.

 

 

 

 

 

 

 

 

تمام این ساختارهای شرطی (if و for و while و case) می‌توانند تو در تو بشوند.

این به آن معناست که می‌توانید یک حلقه for با یک حلقه while در داخل آن داشته باشید، یا هر ترکیب دیگر با هر چقدر تودرتویی که مسئله شما را حل کند.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

جهت مشاهده دوره های آموزشی بر روی این لینک کلیک نمایید.

جدیدترین اخبار مجموعه فراز نتورک را در این صفحه اجتماعی دنبال کنید.

نویسنده: موسی رشوند

دسته‌بندی لینوکس و یونیکس
اشتراک گذاری
نوشته‌های مرتبط

دیدگاهتان را بنویسید

سبد خرید

سبد خرید شما خالی است.

ورود به سایت