از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
چگونه از اسکریپت Bash خارج شوم؟
سرفصلهای مطلب
مثال 01: استفاده از خروجی 0
اولین روشی که در این مثال از آن استفاده کردهایم، استفاده از عبارت exit است bash اسکریپت یک فایل جدید در پوسته با کمک دستور “touch” ایجاد کنید و آن را در هر ویرایشگر باز کنید.
دستور خواندن به طور گسترده ای برای دریافت ورودی از کاربر شناخته شده است. در اینجا مقادیر صحیح را در زمان اجرا می گیرد و آنها را در متغیر “x” ذخیره می کند. عبارت “if” در حال بررسی یک شرط بوده است. اگر مقدار “x” وارد شده توسط یک کاربر برابر با 5 باشد، نشان می دهد که عدد از طریق دستور echo مطابقت دارد. بند “خروج 0” در اینجا استفاده شده است. پس از اجرای دستور “echo”، bash از اسکریپت خارج می شود و به دلیل “خروج 0” دیگر اجرا نمی شود. در غیر این صورت، اگر شرط برآورده نشد، دستور “echo” خارج از دستور “if” اجرا می شود.
خود را اجرا کنید bash فایل با کمک a bash پرس و جو در پوسته کاربر 4 را به عنوان ورودی اضافه کرد. از آنجایی که 4 برابر با 5 نیست، بخش “then” از عبارت “if” را اجرا نمی کند. بنابراین، خروج ناگهانی اتفاق نخواهد افتاد. از سوی دیگر، دستور echo خارج از دستور “if” اجرا شده بیان می کند که “Number مطابقت ندارد..” و برنامه در اینجا به پایان می رسد.
همان کد را یک بار دیگر با bash فرمان کاربر این بار 5 عدد اضافه کرد. از آنجایی که 5 شرط را برآورده می کند، عبارت “echo” در داخل عبارت “then” اجرا شد. پس از آن، برنامه به دلیل استفاده از “خروج 0” به سرعت متوقف می شود.
مثال 02: استفاده از Exit
به جای استفاده از “خروج 0″، می توانید به سادگی از “خروج” در خود استفاده کنید bash اسکریپت برای خروج از کد بنابراین، همان فایل را باز کنید و کد خود را به روز کنید. فقط بند “خروج” در اینجا تغییر کرده است، یعنی با “خروج” جایگزین شده است. کل فایل بدون تغییر باقی ماند. بیایید ابتدا کد را با استفاده از “Ctrl+S” ذخیره کنیم و با استفاده از “Crl+X” از آن خارج شویم. بیایید آن را اجرا کنیم تا ببینیم آیا همان کاری است که عبارت “خروج 1” انجام می دهد یا خیر.
را اجرا کنید bash فایل “bash.sh” در terminal با استفاده از دستور نشان داده شده در تصویر پیوست شده است. کاربر مقدار “6” را وارد کرده و این شرط را برآورده نمی کند. بنابراین، کامپایلر عبارت “then” دستور “if” را نادیده می گیرد و عبارت echo را خارج از دستور “if” اجرا می کند.
یک بار دیگر همان فایل را اجرا کنید. این بار کاربر 5 را به عنوان ارضای شرط اضافه کرد. بنابراین bash اسکریپت درست پس از اجرای عبارت “echo” در داخل عبارت “if” خارج می شود.
مثال 03: استفاده از خروجی 1
همچنین می توانید از بند “خروج” برای خروج استفاده کنید bash اسکریپت در حالی که 1 با آن در زمان اجرا بیان می شود. بنابراین، همان فایل را باز کنید و کد خود را همانطور که قبلا انجام داده ایم به روز کنید. تنها تغییر “خروج 1” به جای “خروج” یا “خروج 0” است. کد خود را ذخیره کرده و با استفاده از “Ctrl+S” و “Ctrl+X” از ویرایشگر خارج شوید.
در اولین اجرا، کاربر 6 را به عنوان ورودی اضافه کرد. شرط برآورده نمی شود و دستورات داخل دستور “if” اجرا نمی شوند. بنابراین، خروج ناگهانی اتفاق نیفتاد.
در تلاش دوم، کاربر برای ارضای شرط، 5 عدد اضافه کرد. بنابراین، دستورات داخل دستور “if” اجرا می شوند و برنامه پس از اجرای عبارت “echo” خارج می شود.
مثال 04
بیایید از بند “خروج 1” در قسمت استفاده کنیم bash اسکریپت با بررسی موقعیت های مختلف بنابراین، ما کد همان فایل را به روز کرده ایم. بعد از bash پشتیبانی، عبارت «if» برای بررسی اینکه آیا کاربر وارد شده فعلی، یعنی «لینوکس» کاربر اصلی نیست، مقداردهی اولیه شده است. اگر شرط برآورده شود، عبارت echo در عبارت “then” اجرا می شود و برنامه درست از اینجا خارج می شود. اگر حساب کاربری که در حال حاضر وارد شدهاید یک کاربر ریشه باشد، به اجرای دستورات خارج از عبارت «if» ادامه میدهد. برنامه به دریافت دو ورودی از یک کاربر و محاسبه مجموع هر دو عدد صحیح ادامه خواهد داد. “جمع” محاسبه شده نمایش داده می شود و سپس برنامه خارج می شود.
از آنجایی که حساب “لینوکس” کاربر اصلی اوبونتو 20.04 ما نیست، اجرای این کد فقط عبارت “if” و بندهای بین آن را اجرا کرده است. بعد از این برنامه متوقف می شود.
مثال 05: استفاده از “set -e” داخلی
“set-e” داخلی به طور گسترده ای برای خروج از برنامه پس از مواجهه با وضعیت غیر صفر شناخته شده است. بنابراین، ما 3 تابع با نام دوقلو با 1 دستور echo و یک بند وضعیت بازگشت در هر کدام اضافه کردهایم. “set +e” قبل از فراخوانی دو روش اول مقداردهی اولیه می شود و “set –e” بعد از آن استفاده می شود و دو تابع بعد از آن فراخوانی می شوند.
پس از اجرا، هر دو دستور اکو تابع show1 و show2 اجرا می شوند و برنامه خارج نمی شود. در حالی که بعد از “set –e” برنامه پس از اجرای دستور echo متد show2() خارج می شود زیرا با “return 1” روبرو می شود. متد show3 بعد از آن فراخوانی نخواهد شد.
با اجرای این کد، خروجی مورد انتظار را دریافت کردیم. پس از مواجهه با وضعیت بازگشتی 1، برنامه بدون اجرای متد “show3()” متوقف شد.
نتیجه
این راهنما تمام راه های ممکن برای خروج از هر کدام را پوشش می دهد bash اسکریپت هنگام نوشتن، اجرا یا اجرا بنابراین، سعی کنید هر مثالی را که در این مقاله توضیح داده شده است پیاده سازی کنید تا درک واضح تری داشته باشید.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-30 08:11:04