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

سرور مجازی NVMe

Set –e در Bash چه می کند؟

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


Set –e در Bash استفاده می‌شود تا اجرا را فوراً متوقف کند، زیرا یک کوئری در حالی که وضعیت غیر صفر دارد، خارج می‌شود. این تابع همچنین زمانی استفاده می شود که شما باید محل خطا را در کدهای در حال اجرا بدانید. اجازه دهید مقاله را برای توضیح بیشتر ادامه دهیم روی مفهوم مجموعه – e در جنبه های مختلف کدها.

افزونه های Bash را در لینوکس نصب کنید. اگر قبلاً نصب شده است، پس باید نسخه را ارتقا دهید زیرا نسخه باید بالای 4 باشد.

Set –e در Bash چه می کند؟

مثال 1

در اینجا، ما به یک فایل با کد Bash نیاز داریم. بنابراین، با استفاده از اوبونتو یک فایل با استفاده از دستور “touch” ایجاد کنید terminal. که به صورت زیر نوشته شده است:

$ دست زدن به file1.sh

ما در اینجا دو رویکرد را در پیش خواهیم گرفت. یکی استفاده از “set –e” در خارج از بدنه تابع در حالی که دیگری استفاده از آن در داخل تابع است. فایل “file1.sh” را در نظر بگیرید. زمانی که در حال نوشتن کد به زبان Bash هستیم، به فایلی با پسوند .sh نیاز داریم. این مثال با افزودن تابعی به نام “helo” سروکار دارد.

در این تابع، می‌خواهیم یک خط چاپ کنیم، بنابراین فقط از دستور echo برای نمایش پیام استفاده می‌کنیم. همانطور که یک تابع را در اینجا اعلام کرده ایم، فراخوانی تابع باید در اینجا مورد نیاز باشد. بنابراین در پایان از نام تابع به عنوان فراخوانی تابع استفاده کرده ایم. در اینجا “set-e” در ابتدای به معنای خارج از بدنه تابع استفاده می شود.

تنظیم –e

Set –e فقط مربوط به نوشتن یا تنظیم خطا در نمایش کد است.

Set –e در Bash چه می کند؟Set –e در Bash چه می کند؟

ما از یک ویرایشگر متن ساده استفاده کرده ایم که به طور پیش فرض در سیستم اوبونتو وجود دارد.

$ bash file1.sh

Set –e در Bash چه می کند؟Set –e در Bash چه می کند؟

حال، به سمت رویکرد دوم حرکت می کنیم که در آن باید از “set –e” در داخل تابع استفاده کنیم. ما تفاوت بین این رویکردها را خواهیم دید. کد داده شده را با جایگزین کردن “set –e” از خارج از بدنه تابع به داخل بدنه تابع “helo” ویرایش کنید، در حالی که کد باقی مانده مانند کد قبلی است. می توانید از تصویر درج شده بررسی کنید.

Set –e در Bash چه می کند؟Set –e در Bash چه می کند؟

دوباره همان دستور را اجرا کنید روی را terminal برای گرفتن نتیجه

Set –e در Bash چه می کند؟Set –e در Bash چه می کند؟

این بدان معنی است که “مجموعه -e” هنگامی که در داخل یا خارج از بدنه تابع استفاده می شود، هیچ تغییری ایجاد نمی کند.

مثال 2

این یک مثال کاملا آسان است که در آن پس از اعلامیه bash پسوند در یک فایل، از “set –e” در بدنه بیرونی تابع استفاده کرده ایم. “مجموعه -e” اجازه می دهد تا terminal برای پرتاب یک استثنا در جایی که خطا را پیدا می کند و سپس اجرای کد را متوقف می کند. سپس، تابع خطا در اینجا اعلام می شود. تنها هدف این تابع نمایش پیغام خطا به همراه شماره خطی است که حاوی خطا است.

پیشنهاد می‌کنیم بخوانید:  رشته های حروف کوچک و بزرگ را بشکنید

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

تله “خطا $LINENOEخطا

طبق این کد، نتیجه باید خطای خط 10 را نشان دهد.

Set –e در Bash چه می کند؟Set –e در Bash چه می کند؟

کد را اجرا کنید روی را terminal با استفاده از فایل می‌توانید به این موضوع ربط دهید که نام فایل با شماره خط نشان داده می‌شود و استثنایی ایجاد می‌شود که نشان می‌دهد دستور یافت نشد. ثانیا، داشتن پیامی از تابع برای نشان دادن شماره خطی که در آن خطایی رخ داده است.

Set –e در Bash چه می کند؟Set –e در Bash چه می کند؟

مثال 3

این مثال به استفاده از دو می پردازد bash فایل ها. یکی file1.sh و دیگری file2.sh. ابتدا file2.sh را در نظر بگیرید. در اینجا ما از “set –e” استفاده کرده ایم و در فایل دیگر استفاده نمی شود. به طور مشابه، در این فایل فقط ما از فراخوانی تابع استفاده کرده ایم، در حالی که کل بدنه تابع در فایل دیگر اعلام شده است. ما هر دو فایل را با استفاده از کلمه کلیدی “source” پیوند داده ایم تا تابعی که در اینجا انجام دادیم بتواند تابع را از فایل دیگر اجرا کند.

4 منبع “file1.sh”

پس از آن، در فراخوانی تابع، یک کلمه نیز نمایش داده می شود.

Echo “اعلان: $(سلام)

“Helo” نام تابع است.

Set –e در Bash چه می کند؟Set –e در Bash چه می کند؟

حالا فایل دیگر file1.sh را در نظر بگیرید. در این فایل تابع helo1() اعلام شده است. در بدنه تابع، فقط یک پیام نمایش داده ایم.

اکو «صبر کن: 1 دلار

حرکت به سمت تابع دیگری که helo() است. این همان تابعی است که در اولین فایلی که در مورد آن صحبت کردیم با نام فراخوانی شد. در داخل این تابع، ما دوباره از فراخوانی تابع helo1() استفاده کرده ایم. این بالاتر از تابع فعلی در همان فایل اعلام شده است، بنابراین ما نیازی به پیوند هر دو فایل با استفاده از کلمه کلیدی “منبع” نداریم. با فراخوانی عملکرد، یک پیام نمایش داده می شود:

Helo1 “خطایی وجود دارد”

Set –e در Bash چه می کند؟Set –e در Bash چه می کند؟

کل عملکرد به گونه ای انجام می شود که file2.sh را در قسمت اجرا می کنیم terminal. بنابراین، اولین فراخوانی تابع اجرا می شود و کنترل به سمت تابع helo() در file1.sh حرکت می کند. که این فراخوانی تابع را اجرا می کند و اکنون کنترل به سمت اولین تابع فایل حرکت می کند. بیایید ببینیم خروجی چگونه نمایش داده می شود.

$ bash file.sh

Set –e در Bash چه می کند؟Set –e در Bash چه می کند؟

اکنون می بینید که ابتدا کلمه از file2.sh نمایش داده می شود و سپس پیام تابع helo1() که عبارت است از “wait” و سپس پیام تابع helo(). همانطور که از “خروج 1” استفاده کرده ایم، کنترل به آن داده نمی شود، بنابراین هیچ نقشی از “set-e” وجود ندارد. اگر فراخوانی تابع مدیریت نشود، باید خطا وجود داشته باشد تا غالب شود.

پیشنهاد می‌کنیم بخوانید:  دریافت خطا در اسکریپت Bash. Expr $a + 1: عبارت عدد صحیح مورد انتظار

مثال 4

این مثال حاوی درک کاملی از “مجموعه -e” است. در این مثال چهار تابع را در نظر بگیرید. همانطور که می دانیم از set –e داخلی برای خروج از کد زمانی که وضعیت غیر صفر دریافت می کند استفاده می شود. در این مثال، ما از “0” فقط برای یک تابع استفاده کرده ایم که تابع اول است. همه توابع دیگر 1 را برمی‌گردانند. این بدان معنی است که پس از نمایش اولین تابع، کد از اجرا خارج می‌شود. اما نمی شود. در اینجا از “set +e” استفاده کرده ایم که برعکس “set –e” است. هر زمان که “set –e” کد را مجبور به خاتمه اجرا کند، هر زمان که با مقدار غیر صفر مواجه شود، کد مقابل با آن مخالفت خواهد کرد. “set +e” قبل از فراخوانی تابع دو تابع اول و “set –e” قبل از فراخوانی تابع دو متد آخر اعلام می شود.

تنظیم +e

Set –e در Bash چه می کند؟Set –e در Bash چه می کند؟

در حال حاضر، دو تابع اول اجرا خواهد شد. در تابع دوم، از آنجایی که یک مقدار غیر صفر است، کامپایلر مجبور می شود یک خطا ایجاد کند اما “set +e” مقدار را خنثی می کند. هنگامی که زمان عملکرد سوم فرا می رسد، هر دو پیام با اکو نمایش داده می شوند، اما زمانی که کنترل به مقدار “بازگشت 1” رفت، کد متوقف می شود. همانطور که در اینجا، ما از “set +e” استفاده نکردیم. به همین دلیل است که تابع 4 در اینجا اجرا نمی شود.

کد را در terminal به طوری که مقدار حاصل را خواهید دید.

Set –e در Bash چه می کند؟Set –e در Bash چه می کند؟

نتیجه

این آموزش کارکرد “set –e” را نشان می دهد. در مثال‌ها، برای خاتمه دادن به اجرا از این طریق استفاده می‌شود. با این حال، حریف “set +e” نیز در اینجا برای نشان دادن کار استفاده می شود.

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

زمان انتشار: 1402-12-30 15:02:03

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

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

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