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

سرور مجازی NVMe

آیا بیانیه “goto” در Bash وجود دارد؟

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


یکی از مهمترین ویژگی های Bash توانایی آن در کنترل جریان اجرای اسکریپت است، این کنترل از طریق دستورات شرطی مختلف مانند if-else و حلقه هایی مانند for و while امکان پذیر است. با این حال، برخی از توسعه دهندگان ممکن است تعجب کنند که آیا Bash از a پشتیبانی می کند “رفتن به” بیانیه، این مقاله بررسی خواهد کرد که آیا وجود دارد یا خیر رفتن به بیانیه در Bash یا نه.

آیا بیانیه “goto” در Bash وجود دارد؟

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

در Bash، هیچ پشتیبانی مستقیمی از آن وجود ندارد “رفتن به” در عوض، Bash ساختارهای جایگزینی را ارائه می‌کند که می‌توانند به همان اثر a دست یابند “رفتن به” بیانیه.

به عنوان مثال ‘زنگ تفریح’ و ‘ادامه هید’ دستورات به برنامه نویسان اجازه می دهد تا از حلقه ها خارج شوند یا از تکرارها در یک حلقه رد شوند. به طور مشابه، Bash فراهم می کند ‘برگشت’ عبارت برای خروج از یک تابع و بازگشت به کد فراخوانی.

#!/bin/bash

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

تابع افزودن_اعداد {

اگر [ $# -ne 2 ]; سپس

اکو “خطا: دو عدد برای اضافه کردن بدهید”

برگشت 1 # عملکرد خروج با وضعیت خطا

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

فی

نتیجه=$(( 1 دلار + 2 دلار ))

اکو $نتیجه

}

نتیجه=$(افزودن_اعداد 10 20)

اگر [ $? -eq 0 ]; سپس

اکو “نتیجه: $نتیجه

دیگر

اکو “عملکرد با کد خطای $ ناموفق بود؟”

فی

کد یک تابع فراخوانی را اعلام می کند افزودن_اعداد که دو آرگومان می گیرد، بررسی می کند که آیا دقیقاً دو آرگومان ارائه شده است یا خیر، دو عدد را اضافه می کند و نتیجه را در متغیر نتیجه ذخیره می کند.

اسکریپت سپس آن را فراخوانی می کند افزودن_اعداد تابع با دو آرگومان و بررسی وضعیت بازگشت تابع با استفاده از ‘$؟’ متغیر. اگر تابع موفق شد (وضعیت بازگشت 0) نتیجه را چاپ می کند، در غیر این صورت یک پیام خطا با وضعیت بازگشت تابع چاپ می کند:

آیا بیانیه "goto" در Bash وجود دارد؟

جایگزین دیگری برای “رفتن به” عبارت در Bash است مورد بیانیه از آنجایی که عبارت case شبیه دستور سوئیچ در سایر زبان های برنامه نویسی است و به برنامه نویسان اجازه می دهد تا بلوک های کد خاصی را بر اساس آن اجرا کنند. روی مقدار یک متغیر این بیانیه مورد می توان از آن برای دستیابی به اثری مشابه استفاده کرد “رفتن به” بیانیه. در زیر کدی وجود دارد که فقط دو عدد صحیح را با استفاده از منطق یکسان اضافه می کند روی که بیانیه goto آثار:

#!/bin/bash

# دو عدد از کاربر را بخوانید

خواندن “اولین شماره را وارد کنید:” num1

خواندن “شماره دوم را وارد کنید:” num2

تابع افزودن_اعداد {

نتیجه=$(( 1 دلار + 2 دلار ))

# خروجی نتیجه را برای کاربر

اکو “نتیجه: $نتیجه

}

مورد $num1$num2 که در

*[!09]*)

اکو “خطا: اعداد صحیح معتبر وارد کنید”

;;

*)

افزودن_اعداد $num1 $num2

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

;;

اساک

ابتدا دستور خواندن برای درخواست از کاربر برای وارد کردن دو عدد و سپس عدد استفاده می شود افزودن_اعداد تابع دو عدد را جمع می کند و نتیجه را به کاربر می دهد. برای بررسی اینکه آیا هر دو عدد اعداد صحیح معتبر هستند یا خیر، کد از کد استفاده می کند بیانیه مورد. اگر هر یک از اعداد یک عدد صحیح معتبر نباشد، اسکریپت یک پیغام خطا و اگر هر دو عدد صحیح معتبر باشند، آنگاه افزودن_اعداد تابع فراخوانی می شود تا اعداد را با هم جمع کند و نتیجه را به دست آورد.

با استفاده از بیانیه مورد برای بررسی ورودی، اسکریپت از نیاز به a اجتناب می کند “رفتن به” عبارت برای پرش به بخش خاصی از کد مبتنی بر روی مقدار ورودی:

آیا بیانیه "goto" در Bash وجود دارد؟آیا بیانیه "goto" در Bash وجود دارد؟

نتیجه

Bash پشتیبانی مستقیمی برای بیانیه “برو”. با این حال، Bash ساختارهای جایگزینی مانند دستورات break، continue، return و case را ارائه می‌کند که می‌توانند به اثرات مشابهی دست یابند. بیانیه “برو”.. مانند هر زبان برنامه نویسی، استفاده عاقلانه از این ساختارها و اجتناب از استفاده بیش از حد از آنها ضروری است. استفاده صحیح از ساختارهای جریان کنترل می تواند کد را خواناتر و قابل نگهداری تر کند، در حالی که استفاده بیش از حد می تواند درک و اشکال زدایی کد را دشوار کند.

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

زمان انتشار: 1402-12-29 01:28:03

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

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

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