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

سرور مجازی NVMe

مدیریت خطای Bash

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


مدیریت خطا بخش بسیار مهمی از هر زبان برنامه نویسی است. Bash هیچ گزینه بهتری نسبت به سایر زبان های برنامه نویسی برای کنترل خطای اسکریپت ندارد. اما ضروری است که اسکریپت Bash در زمان اجرای اسکریپت بدون خطا باشد. terminal. ویژگی رسیدگی به خطا را می توان برای اسکریپت Bash به روش های مختلفی پیاده سازی کرد. تکنیک های مختلف برای رسیدگی به خطاهای اسکریپت Bash در این آموزش نشان داده شده است.

مثال 1: مدیریت خطا با استفاده از یک عبارت شرطی

یک فایل Bash با اسکریپت زیر ایجاد کنید که استفاده از عبارت شرطی را برای رسیدگی به خطا نشان می دهد. اولین عبارت “if” برای بررسی تعداد کل آرگومان های خط فرمان و چاپ یک پیام خطا در صورتی که مقدار کمتر از 2 باشد استفاده می شود. سپس مقادیر تقسیم کننده و تقسیم کننده از آرگومان های خط فرمان گرفته می شوند. اگر مقدار مقسوم علیه برابر با 0 باشد، یک خطا ایجاد می شود و پیام خطا در فایل error.txt چاپ می شود. دومین فرمان “if” برای بررسی خالی بودن یا نبودن فایل error.txt استفاده می شود. اگر فایل error.txt خالی نباشد، پیام خطا چاپ می شود.

#!/bin/bash
#مقادیر آرگومان را بررسی کنید
اگر [ $# -lt 2 ]; سپس

اکو “یک یا چند استدلال گم شده است.”

خروج
فی
#مقدار سود سهام را از اول بخوانید command-line بحث و جدل
سود سهام=1 دلار
#مقسم‌دهنده را از دوم بخوانید command-line بحث و جدل
مقسم=2 دلار
# تقسیم سود بر تقسیم کننده
نتیجه=`اکو “مقیاس=2; سود سهام $/تقسیم کننده $|قبل از میلاد مسیح 2>error.txt`
#محتوای فایل خطا را بخوانید
محتوا=`گربه error.txt`
اگر [ -n $content ]; سپس

اگر error.txt خالی نیست، پیام خطا را #چاپ کنید

اکو “خطای قابل تقسیم بر صفر رخ داد.”
دیگر

#نتیجه را چاپ کنید

اکو سود سهام $/تقسیم کننده $ = $نتیجه

خروجی:

خروجی زیر پس از اجرای اسکریپت قبلی بدون هیچ آرگومانی ظاهر می شود:

پیشنهاد می‌کنیم بخوانید:  چگونه یک فرمان را چندین بار در لینوکس اجرا کنیم؟

مدیریت خطای Bash

خروجی زیر پس از اجرای اسکریپت قبلی با یک مقدار آرگومان ظاهر می شود:

مدیریت خطای Bashمدیریت خطای Bash

خروجی زیر پس از اجرای اسکریپت قبلی با دو مقدار آرگومان معتبر ظاهر می شود:

مدیریت خطای Bashمدیریت خطای Bash

خروجی زیر پس از اجرای اسکریپت قبلی با دو مقدار آرگومان ظاهر می شود که آرگومان دوم 0 است. پیام خطا چاپ می شود:

مدیریت خطای Bashمدیریت خطای Bash

مثال 2: مدیریت خطا با استفاده از کد وضعیت خروج

یک فایل Bash با اسکریپت زیر ایجاد کنید که استفاده از مدیریت خطای Bash با کد وضعیت خروج را نشان می دهد. هر دستور Bash به عنوان مقدار ورودی گرفته می شود و آن دستور بعداً اجرا می شود. اگر کد وضعیت خروج برابر با صفر نباشد، یک پیام خطا چاپ می شود. در غیر این صورت یک پیام موفقیت آمیز چاپ می شود.

#!/bin/bash

#یک نام دستور لینوکس بگیرید
اکو -n “یک دستور را وارد کنید:”
خواندن cmd_name
#فرمان را اجرا کنید
$cmd_name
#بررسی کنید که آیا این دستور معتبر است یا نامعتبر
اگر [ $? -ne 0 ]; سپس

اکو $cmd_name یک دستور نامعتبر است.”
دیگر

اکو $cmd_name یک دستور معتبر است.”
فی

فی

خروجی:

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

مدیریت خطای Bashمدیریت خطای Bash

خروجی زیر پس از اجرای اسکریپت قبلی برای دستور نامعتبر ظاهر می شود. در اینجا، “cmd” به عنوان دستور در مقدار ورودی نامعتبر در نظر گرفته می شود:

مدیریت خطای Bashمدیریت خطای Bash

مثال 3: اجرای را متوقف کنید روی اولین خطا

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

#!/bin/bash
#گزینه خاتمه اسکریپت را تنظیم کنید روی اولین خطا
تنظیم -e
اکو ‘تاریخ و زمان فعلی:’
#دستور معتبر
تاریخ
اکو ‘دایرکتوری فعلی کار:’
#دستور نا معتبر

cwd
اکو ‘نام کاربری ورود:’
#دستور معتبر
من کی هستم
اکو ‘فهرست فایل ها و پوشه ها:’
#دستور نا معتبر

فهرست

خروجی:

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

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

مدیریت خطای Bashمدیریت خطای Bash

مثال 4: اجرای متغیر Unitialized را متوقف کنید

یک فایل Bash با اسکریپت زیر ایجاد کنید که روش توقف اجرای اسکریپت را برای متغیر بدون مقدار اولیه نشان می دهد. مقادیر نام کاربری و رمز عبور از مقادیر آرگومان خط فرمان گرفته شده است. اگر هر یک از مقادیر این متغیرها مقداردهی نشده باشد، یک پیغام خطا چاپ می شود. اگر هر دو متغیر مقداردهی اولیه شوند، اسکریپت بررسی می کند که آیا نام کاربری و رمز عبور معتبر هستند یا نامعتبر.

#!/bin/bash
#گزینه خاتمه اسکریپت را برای یک متغیر بدون مقدار اولیه تنظیم کنید
تنظیم -u
#اولین را تنظیم کنید command-line مقدار آرگومان برای نام کاربری
نام کاربری=1 دلار
دومی را #تنظیم کنید command-line مقدار آرگومان برای رمز عبور
کلمه عبور=2 دلار
#بررسی کنید نام کاربری و رمز عبور معتبر یا نامعتبر باشد
اگر [[ $username == ‘admin’ && $password == ‘hidenseek’ ]]; سپس

اکو “کاربر معتبر.”
دیگر

اکو “کاربر نامعتبر.”
فی

خروجی:

اگر اسکریپت بدون استفاده از هیچ کدام اجرا شود، خروجی زیر ظاهر می شود command-line مقدار آرگومان اسکریپت پس از دریافت اولین متغیر بدون مقدار اولیه، اجرا را متوقف می کند:

مدیریت خطای Bashمدیریت خطای Bash

اگر اسکریپت با یک اجرا شود خروجی زیر ظاهر می شود command-line مقدار آرگومان اسکریپت پس از دریافت دومین متغیر بدون مقدار اولیه، اجرا را متوقف می کند:

مدیریت خطای Bashمدیریت خطای Bash

اگر اسکریپت با دو اجرا شود خروجی زیر ظاهر می شود command-line مقادیر آرگومان – “admin” و “hide”. در اینجا نام کاربری معتبر است اما رمز عبور نامعتبر است. بنابراین، پیام “کاربر نامعتبر” چاپ می شود:

مدیریت خطای Bashمدیریت خطای Bash

اگر اسکریپت با دو اجرا شود خروجی زیر ظاهر می شود command-line مقادیر آرگومان – “admin” و “hidenseek”. در اینجا، نام کاربری و رمز عبور معتبر است. بنابراین، پیام “کاربر معتبر” چاپ می شود:

مدیریت خطای Bashمدیریت خطای Bash

نتیجه

روش‌های مختلف رسیدگی به خطاها در اسکریپت Bash در این آموزش با استفاده از چندین مثال نشان داده شده است. ما امیدواریم که این به کاربران Bash کمک کند تا ویژگی مدیریت خطا را در اسکریپت Bash خود پیاده سازی کنند.

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

زمان انتشار: 1402-12-29 09:22:03

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

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

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