از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
Fallthrough مورد Bash
سرفصلهای مطلب
در حین کار در بسیاری از زبان های برنامه نویسی، ممکن است از عبارات شرطی مختلفی مانند if-else، switch و بسیاری دیگر استفاده کرده باشید. در برنامه نویسی Bash، ما تمایل داریم از یک دستور “case” استفاده کنیم که در آن تنها یک بلوک مطابق پس از اجرای دستور case اجرا می شود. Bash همچنین این فرصت را در اختیار ما قرار می دهد تا در دستور case مانند اجرای چندین بلوک منطبق یا همه بلوک ها، سقوط را انجام دهیم.
قبل از شروع مثال هایمان، باید فایل Bash را ایجاد کنیم. برای این کار، باید برنامه کنسولی را که در هر توزیع لینوکس تعبیه شده است راه اندازی کنید. برای راه اندازی console برنامه، می توانید میانبر “Ctrl+Alt+T” را امتحان کنید. از پرس و جوی لیست لینوکس “ls” برای فهرست کردن همه پوشه های موجود در فهرست اصلی فعلی استفاده کنید. هیچ فایل Bash در دسترس نیست، بنابراین دستورالعمل “touch” را برای ایجاد یک فایل Bash جدید به نام “fall.sh” اجرا کنید. پس از این، مجدداً محتویات دایرکتوری را لیست کرده و فایل “fall.sh” در آن لیست می شود.
مثال 01: بیان مورد ساده
پس از ایجاد فایل، وقت آن است که آن را در یک ویرایشگر داخلی باز کنید تا شروع به اضافه کردن اسکریپت Bash در آن کنید. اگر تازه وارد Bash هستید، می توانید برای راحتی خود از ویرایشگر متن استفاده کنید. در غیر این صورت، برای ویرایش سریع و اجرای اسکریپت Bash ترجیح دهید از ویرایشگر “Gnu Nano” استفاده کنید. دستور “nano” را در پوسته اجرا کنید تا فایل “fall.sh” در ویرایشگر نانو در یک ثانیه باز شود. دستور به شرح زیر است:
فایل خالی “fall.sh” در ویرایشگر Gnu Nano باز می شود. اسکریپت Bash زیر را به آن اضافه کنید. اسکریپت Bash با مسیر ساده Bash شروع می شود که اضافه کردن آن ضروری نیست. یک متغیر “v” با مقدار “1” مقداردهی اولیه می شود. دستور case با استفاده از متغیر “$v” شروع می شود تا بررسی شود که آیا مقدار این متغیر در هر یک از موارد ذکر شده قرار دارد یا خیر. اگر مورد 1 با مقدار متغیر “v” مطابقت داشته باشد، با استفاده از دستور echo “فیزیک” را نمایش می دهد. اگر مورد 2 با مقدار متغیر “v” مطابقت داشته باشد، “شیمی” را با استفاده از دستور echo نمایش می دهد. و اگر مورد 3 با مقدار متغیر “v” مطابقت داشته باشد، با استفاده از عبارت echo “بیولوژی” را نشان می دهد. در عبارت case ساده، یک نکته وجود دارد که باید به آن توجه کرد و آن استفاده از دو “;;” است. کاراکترهای موجود در هر مورد از عبارت case. این علامت عبارت موردی را به یک بیان ساده تبدیل می کند. عبارت case با کلمه کلیدی “esac” همانطور که در زیر نشان داده شده است تکمیل می شود. بیایید ابتدا کد خود را ذخیره کرده و سپس آن را اجرا کنیم روی را console با استفاده از Ctrl+S و Ctrl+X.
در داخل console ناحیه پرس و جو، دستور Bash را اجرا می کنیم تا فایل Bash “fall.sh” را اجرا کنیم و نتایج آن را ببینیم. خروجی نتیجه مورد اول – “فیزیک” را نشان می دهد. این به این دلیل است که اولین مورد مطابق با شرط در دستور case start – متغیر “v” دارای مقدار 1 است.
مثال 02: بیانیه سقوط مورد
در این مثال، توضیح خواهیم داد که چگونه می توانیم از fallthrough در دستور case با استفاده از کاراکتر ویژه “;&” در آن استفاده کنیم. در این کد، ما از همان متغیر “v” با همان مقدار در دستور case استفاده می کنیم و هر یک از موارد آن را برای مقادیر 1، 2 و 3 اجرا می کنیم. شبیه مثال قبلی هستند که استفاده از یک عبارت case ساده را نشان می دهد. تنها تغییر در این کد کلی استفاده از ترکیب کاراکترهای ویژه “;&” به جای “;;” است. ترکیب شخصیت های خاص ابتدا این اسکریپت Bash را ذخیره کنید و سپس آن را اجرا کنید تا ببینید در نهایت چه اتفاقی می افتد.
ما دستورالعمل “Bash” را با نام فایل “fall.sh” به روز شده در ناحیه پرس و جو امتحان کردیم. console کاربرد سیستم اوبونتو 20.04. استفاده از کاراکترهای ویژه “;&” منجر به سقوط case می شود که در آن هر دستور echo از هر مورد اجرا می شود و نتیجه مربوطه را به دلیل سقوط در کد نشان می دهد.
مثال 03: سقوط با استفاده از الگوهای خاص
در مثال، ما از یک تطبیق الگو برای انجام سقوط در دستور case استفاده خواهیم کرد. مقدار متغیر “v” را با مقداری رشته “gmr” به روز می کنیم. عبارت case مورد استفاده در این اسکریپت Bash از متغیر “v” برای جستجوی الگوهای خاص در هر مورد استفاده می کند. هر سه مورد با دو مثال قبلی که شامل الگوهایی هستند که باید مطابقت داده شوند متفاوت است. مورد اول فقط با کاراکتر وسط مطابقت دارد، مورد دوم با کاراکتر اول خود مطابقت دارد، در حالی که مورد سوم با هر سه کاراکتر با متغیر “v” مطابقت دارد. با برآورده شدن دو مورد اول، دستورات “پژواک” مربوطه آنها اجرا می شود و console “فیزیک” و “شیمی” را نمایش می دهد. این به این دلیل است که ما از تطبیق الگو به همراه کاراکترهای ویژه “;;&” استفاده کردیم. پس از ذخیره فایل Bash با میانبر Ctrl+S، این برنامه را با یک میانبر Ctrl+X پایان دهید.
کد ما ذخیره شده و آماده اجرا است. ما دستورالعمل Bash را در اوبونتو 20.04 امتحان کردیم console به همراه فایل “fall.sh” همانطور که ارائه شد. نتایج دو مورد اول را پس از تطابق با الگو نشان داد و در عین حال از سقوط در عبارت های موردی “فیزیک” و “شیمی” استفاده کرد. مورد سوم به دلیل مطابقت نداشتن الگو اجرا نشد.
نتیجه
پاراگراف شروع به تفصیل می پردازد روی استفاده از عبارات شرطی مختلف همراه با گزاره های موردی در زبان های مختلف. همچنین در مورد استفاده از سقوط در بیانیه مورد بحث شد. پس از آن، چند نمونه Bash را در اوبونتو 20.04 پیاده سازی و مورد بحث قرار دادیم تا تفاوت بین استفاده از دستور case ساده و دستور fallthrough case را نشان دهیم. در پایان با استفاده از تطبیق الگو، fallthrough را انجام دادیم. تا آنجا که به منحصر به فرد بودن مربوط می شود، این راهنما کمک بزرگی به شما خواهد کرد.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 22:36:03