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

سرور مجازی NVMe

خروج Bash روی خطا

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


هنگامی که هر دستور لینوکس از روی آن اجرا می شود، یک کد وضعیت خروج برگردانده می شود terminal، یا دستور موفق است یا ناموفق. این کد وضعیت می تواند برای نشان دادن پیام خطا برای اجرای ناموفق یا انجام هر کار خاصی با استفاده از اسکریپت پوسته استفاده شود. کد وضعیت خروج همیشه با یک عدد نشان داده می شود. مقدار این کد برای اجرای موفقیت آمیز هر دستور لینوکس 0 است و برای اجرای ناموفق دستور هر عددی از 1 تا 255 را برمی گرداند. چگونه می توان از کد وضعیت موجود استفاده کرد terminal و در bash اسکریپت در این آموزش نشان داده شده است.

برخی از کدهای وضعیت خطای رایج در زیر ذکر شده است.

کد شرح نظرات
0 نشان دهنده اجرای موفقیت آمیز است.
1 برای گرفتن تمام خطاهای عمومی استفاده می شود. “تقسیم بر صفر”، “عملیات مجاز نیست” و غیره می توانند پیام های خطای این کد باشند.
2 این نشان دهنده سوء استفاده از پوسته داخلی است. «کلید واژه گمشده»، «هیچ فایل یا دایرکتوری وجود ندارد» و غیره می‌توانند پیام‌های خطای این کد باشند.
126 زمانی ایجاد می شود که هر فرمانی قادر به اجرا نباشد. مشکل مجوز یا کلید مورد نیاز موجود نیست می تواند این کد وضعیت را ایجاد کند
127 معمولاً برای مشکل مسیر فرمان ایجاد می شود. “فرمان یافت نشد” می تواند پیام این کد خطا باشد.
130 برای خطای کشنده ایجاد می کند. “اسکریپت پایان یافته با Ctrl+C” می تواند پیام این کد باشد.
255* این کد خروج از محدوده را نشان می دهد.
پیشنهاد می‌کنیم بخوانید:  آموزش پایپ بش

مثال-1: خواندن کد خروج از terminal

‘$؟’ متغیر shell می تواند برای نمایش کد خروجی هر دستوری استفاده شود. ‘ls –la’ یک دستور معتبر است و فهرست فایل‌ها و پوشه‌های دایرکتوری فعلی را نشان می‌دهد. ارزش ‘$?’ پس از اجرای دستور ‘ls -la’ 0 خواهد بود. ‘ls –xyz’ یک دستور نامعتبر است و ‘$?’ پس از اجرای دستور 2 را به عنوان کد خطا برمی گرداند.

$ ls -لا

$ echo دلار؟

$ ls -xyz

$ echo دلار؟

خروج Bash روی خطا

مثال-2: خواندن کد خروج در bash اسکریپت

ایجاد یک bash فایل به نام read_file.sh با اسکریپت زیر در این اسکریپت، نام فایل به عنوان ورودی کاربر گرفته می شود و تعداد کل خطوط، کلمات و کاراکترهای آن فایل با استفاده از دستور ‘wc’ شمارش می شود. اگر نام فایل معتبر باشد، مقدار $status_code 0 است و اگر نام فایل نامعتبر باشد، آنگاه مقدار $status_code برابر با 1 است.

read_file.sh

#!/صندوقچه/bash
echo “نام فایل را وارد کنید”
خواندن نام فایل
دستشویی -lwc $filename
وضعیت_کد=دلار؟
echo “خروجی دستور “wc” این است: $status_code

خروج Bash روی خطاخروج Bash روی خطا

مثال-3: استفاده از مقدار کد خروج برای انجام کار خاص

ایجاد یک bash فایل به نام read_month.sh با کد زیر در اینجا، یک مقدار تاریخ به عنوان ورودی گرفته می شود. اگر تاریخ ورودی معتبر باشد، نام ماه از مقدار تاریخ بازیابی می شود، در غیر این صورت پیام خطای “تاریخ نامعتبر” ظاهر می شود. شرط “if” در اسکریپت برای بررسی کد وضعیت خروج از دستور date استفاده می شود. اگر شرط درست باشد، پیام موفقیت و نام ماه تاریخ چاپ خواهد شد. اگر شرط نادرست باشد، پیام شکست و کد وضعیت خروج، 1 خواهد بود print.

پیشنهاد می‌کنیم بخوانید:  Bash Declare –a برای آرایه ها

read_month.sh

#!/صندوقچه/bash
echo “تاریخ را در قالب: YYYY-MM-DD وارد کنید”
خواندن date_value
ماه جاری=$(تاریخ $date_value ‘+%B’)
اگر [ $? -eq 0 ]
سپس
echo “فرمان تاریخ با موفقیت اجرا شد”
echo “ماه جاری است $current_month
دیگر
echo “فرمان تاریخ با موفقیت اجرا نشد”
خروج 1
فی

اسکریپت را اجرا کنید.

$ bash read_month.sh

خروج Bash روی خطاخروج Bash روی خطا

مثال-4: استفاده از && و || با کد خروج

عملگر منطقی “&&” برای کد خروج موفق و “||” استفاده می شود. عملگر منطقی برای کد خروج ناموفق استفاده می شود. دستور زیر خواهد بود print «فایل وجود دارد» اگر book.txt فایل در مکان فعلی وجود دارد و print اگر فایل وجود ندارد book.txt فایل در مکان فعلی وجود ندارد.

$ گربه book.txt && echo “فایل وجود دارد” || echo “فایل وجود ندارد”

خروج Bash روی خطاخروج Bash روی خطا

نتیجه:

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

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

زمان انتشار: 1402-12-31 19:24:03

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

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

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