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

سرور مجازی NVMe

روش اشکال زدایی a bash اسکریپت؟

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






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

همه زبان‌های برنامه‌نویسی روش‌های مشترک و کمی متمایز برای یافتن باگ‌ها دارند. برای مثال می توان از برنامه های اشکال زدایی برای حذف سریع خطاها استفاده کرد. در حالی که برنامه نویسی پوسته ابزار خاصی برای اشکال زدایی کد ندارد. این نوشته در مورد بحث در مورد تکنیک های اشکال زدایی مختلف است که می توان از آنها برای ساختن استفاده کرد bash اسکریپت بدون خطا قبل از اینکه به روش ها بپردازیم، بیایید یک درک اولیه از پوسته ها و اسکریپت نویسی پوسته داشته باشیم:

پوسته در لینوکس چیست؟

هنگامی که کامپیوتر خود را بوت می کنید، هسته اطلاعاتی در مورد سخت افزار پیوست شده دریافت می کند و به سایر اجزای متصل اجازه تعامل می دهد. جدا از آن، حافظه، CPU را مدیریت می کند و هر وسیله جانبی جدیدی را تشخیص می دهد. در مجموع، یک هسته، ستون فقرات هر سیستم عاملی است. اما آیا تا به حال به این فکر کرده اید که مستقیماً با هسته تعامل داشته باشید و به آن دستور دهید تا یک کار خاص را انجام دهد؟ آیا انجام آن حتی عملی است؟ کاملا! با کمک یک پوسته، یک برنامه کامپیوتری با یک رابط تعاملی، هر کسی می تواند هسته را کار کند. پوسته به انسان اجازه می دهد تا با هسته ارتباط برقرار کند و به آن دستور دهد تا هر کاری را انجام دهد.

در یونیکس دو پوسته اصلی وجود دارد پوسته بورن و پوسته C. هر دوی این انواع زیرمجموعه های خود را دارند. انواع مختلف پوسته های بورن هستند پوسته کورن (ksh)، پوسته آلمکوئیست (خاکستر)، پوسته دوباره بورن (bash) و پوسته Z (zsh). در همان زمان، پوسته C دارای زیرمجموعه های خاص خود است پوسته C (csh) و پوسته TENEX C (tcsh). همانطور که در بالا ذکر شد، از بین تمام پوسته ها، بش (پوسته دوباره بورن) پرکاربردترین پوسته است و در بسیاری از توزیع های لینوکس به دلیل کارایی و کاربر پسند بودن از جعبه خارج می شود.

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

Shell Script چیست:

همانطور که ایده اولیه پوسته را یاد گرفتیم، اکنون به سمت اسکریپت نویسی پوسته می رویم. پوسته اسکریپت یک برنامه کامپیوتری است که چندین دستور را در یک پوسته اجرا می کند که به عنوان یک مفسر برای انجام یک عملکرد خاص عمل می کند. همانطور که در بالا ذکر شد، 2 نوع خاص از پوسته وجود دارد. با این حال، این راهنما تمرکز دارد روی پوسته Bourne Again (Bash).
پس a چیست bash اسکریپت؟ در لینوکس، همه bash دستورات در ذخیره می شوند “/usr/bin” و “/bin” پوشه ها به عنوان مثال، هر زمان که دستوری را اجرا می کنید، bash جستجو می کند که آیا در دایرکتوری وجود دارد یا خیر. دستور اگر در دایرکتوری ها بیابد اجرا می شود و دیگر خطا می دهد.

چگونه در مورد انجام یک کار که به چندین دستور برای اجرا در آن نیاز دارد terminal? در این شرایط خاص، bash اسکریپت می تواند به شما کمک کند. برنامه نویسی Bash نوعی از اسکریپت نویسی پوسته است که به شما امکان می دهد برنامه هایی را برای اجرای چندگانه بسازید bash دستورات برای انجام یک کار خاص

اشکالات در چیست bash اسکریپت نویسی:

در حین کار با bash اسکریپت یا با هر زبان برنامه نویسی دیگری با خطاهای زیادی مواجه می شوید. باگ یک خطا یا نقص در برنامه است که می تواند باعث شود برنامه عملکرد نادرست داشته باشد.

هر زبان برنامه نویسی روش خاص خود را برای یافتن اشکال دارد. به همین ترتیب، bash همچنین گزینه های داخلی زیادی برای اشکال زدایی دارد terminal برنامه

مدیریت خطاها و اشکال زدایی یک برنامه کمتر از دردسر نیست. این یک کار وقت گیر است و اگر از ابزارهای مناسب برای اشکال زدایی برنامه خود آگاه نباشید، می تواند بدتر شود. این نوشتن راهنمای کاملی در مورد اشکال زدایی است bashاسکریپت هایی برای اینکه اسکریپت شما بدون خطا باشد. پس بیایید شروع کنیم:

روش اشکال زدایی a bash اسکریپت:

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

ابزارهای مختلفی در لینوکس برای اشکال زدایی کدها وجود دارد، به عنوان مثال، GNU دیباگر با نام “gdb”. ابزارهایی مانند GDB برای زبان های برنامه نویسی که به صورت باینری کامپایل می شوند مفید هستند. از آنجا که bash یک زبان تفسیری ساده است، برای رفع اشکال آن نیازی به ابزارهای سنگین نیست.

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

پیشنهاد می‌کنیم بخوانید:  Bash به آرایه اضافه می شود

خوب، اضافه کردن ادعاها یکی از تکنیک های سنتی قدیمی است. مجموعه‌ای از پرچم‌ها/گزینه‌ها در دسترس هستند bash اشکال زدایی a bash اسکریپت این گزینه ها را می توان به همراه shebang در اسکریپت ها اضافه کرد یا در حین اجرای برنامه در اسکریپت اضافه کرد terminal. موضوعاتی که قرار است به آن بپردازیم به شرح زیر است:

  1. چگونه اشکال زدایی کنیم bash اسکریپت با فعال کردن پرمخاطب “-v” گزینه
  2. چگونه اشکال زدایی کنیم bash استفاده از اسکریپت xtrace “-x” گزینه
  3. چگونه اشکال زدایی کنیم bash استفاده از اسکریپت noexec “-n” گزینه
  4. روش شناسایی متغیرهای تنظیم نشده در حین رفع اشکال bash اسکریپت
  5. روش اشکال زدایی بخش خاص از bash اسکریپت
  6. روش اشکال زدایی a bash اسکریپت با استفاده از “تله” فرمان
  7. روش اشکال زدایی a bash اسکریپت با حذف globbing فایل با استفاده از “-f” گزینه
  8. چگونه ترکیب کردن گزینه های اشکال زدایی برای اشکال زدایی یک اسکریپت پوسته
  9. چگونه redirect debug-report به یک فایل

بنابراین بیایید تکنیک های مختلف را بررسی کنیم bash اشکال زدایی a bash اسکریپت:

1. چگونه اشکال زدایی کنیم bash اسکریپت را با فعال کردن گزینه “-v” پرمخاطب:

یکی از ساده ترین روش ها برای رفع اشکال bash اسکریپت از “-v” گزینه، همچنین به عنوان پرحرف شناخته می شود. این گزینه را می توان با shebang اضافه کرد یا به طور واضح با نام فایل اسکریپت در حین اجرای آن قرار داد. گزینه verbose اجرا خواهد شد و print هر خط از کد به عنوان process توسط مترجم بیایید آن را با یک درک کنیم bash نمونه اسکریپت:

#! /صندوقچه/bash
echo “شماره 1 را وارد کنید”
خواندن شماره 1
echo “شماره 2 را وارد کنید”
خواندن شماره 2
اگر [ $number1 -gt $number2 ]
سپس
echo “عدد 1 بزرگتر از عدد 2 است”
elif [ $number1 -eq $number2 ]
سپس
echo “عدد 1 برابر است با عدد 2”
دیگر
echo “عدد 2 بزرگتر از عدد 1 است”
فی

روش اشکال زدایی a bash اسکریپت؟

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

$sudo apt نصب vim

ایجاد یک bash فایل اسکریپت با استفاده از:

$vim b_script.sh

اگر با ویرایشگر Vim تازه کار هستید، توصیه می کنم قبل از ادامه روش استفاده از ویرایشگر vim را یاد بگیرید.

اکنون به اسکریپت برگردید، اسکریپت را با استفاده از آن اجرا کنید “-v” گزینه:

$bash -v b_script.sh

روش اشکال زدایی a bash اسکریپت؟روش اشکال زدایی a bash اسکریپت؟

در خروجی بالا مشاهده می شود که هر خط از اسکریپت در چاپ شده است terminal همانطور که آنها process توسط مترجم توجه داشته باشید که اسکریپت دریافت ورودی از کاربر را متوقف می کند و سپس process خط بعدی فیلمنامه همانطور که در بالا بحث شد که “-v” همانطور که در زیر نشان داده شده است می توان گزینه را بعد از shebang قرار داد:

#! /صندوقچه/bash -v

روش اشکال زدایی a bash اسکریپت؟روش اشکال زدایی a bash اسکریپت؟

به طور مشابه، پرچم پرمخاطب را می توان در خط بعدی shebang با استفاده از علامت اضافه کرد “تنظیم” دستور:

#! /صندوقچه/bash
تنظیم -v

روش اشکال زدایی a bash اسکریپت؟روش اشکال زدایی a bash اسکریپت؟

هر یک از روش‌هایی که در بالا توضیح داده شد می‌توانند به طور کامل عمل کنند.

2 روش اشکال زدایی bash اسکریپت با استفاده از گزینه xtrace “-x”:

ردیابی اجرا، همچنین به عنوان xtrace شناخته می شود، یک گزینه اشکال زدایی هوشمند و مفید است، به ویژه برای ردیابی خطاهای منطقی. خطاهای منطقی معمولاً با متغیرها و دستورات مرتبط هستند. برای بررسی وضعیت متغیر در حین اجرای اسکریپت، از عبارت استفاده می کنیم “-ایکس” گزینه. حالا دوباره، اجرا کنید “b_script.sh” فایل با “-ایکس” پرچم:

$bash -ایکس b_script.sh

روش اشکال زدایی a bash اسکریپت؟روش اشکال زدایی a bash اسکریپت؟

خروجی به صراحت مقدار هر متغیر را در طول اجرا نشان می دهد process. دوباره، “-ایکس” با استفاده از دستور set می توان در کنار shebang و بعد از خط shebang استفاده کرد. xtrace علامت “+” را با هر خط از اسکریپت قرار می دهد.

3 روش اشکال زدایی bash اسکریپت با استفاده از گزینه noexec “-n”:

خطاهای نحوی یکی از دلایل اصلی ایجاد اشکال هستند. برای اشکال زدایی نحوی bash اسکریپت، ما استفاده می کنیم “noexec” حالت (بدون اجرا). گزینه مورد استفاده برای حالت noexec است “-n.” فقط خطاهای نحوی کد را به جای اجرای آن نمایش می دهد. یک رویکرد بسیار امن تر برای اشکال زدایی کد. بیا اجرا کنیم “b_script.sh” دوباره با “-n” گزینه:

$bash -n b_script.sh

اگر خطای نحوی وجود نداشته باشد، کدی اجرا نخواهد شد. حالا بیایید کد خود را اصلاح کنیم:

#! /صندوقچه/bash

echo “شماره 1 را وارد کنید”
خواندن شماره 1
echo “شماره 2 را وارد کنید”
خواندن شماره 2
اگر [ $number1 -gt $number2 ]
سپس
echo “عدد 1 بزرگتر از عدد 2 است”
elif [ $number1 -eq $number2 ]
#سپس
echo “عدد 1 برابر است با عدد 2”
دیگر
echo “عدد 2 بزرگتر از عدد 1 است”
فی

روش اشکال زدایی a bash اسکریپت؟روش اشکال زدایی a bash اسکریپت؟

من دارم نظر میدم “سپس” بعد از “الیف”. اکنون، با “-n” اجرا کنید “b_script.sh” اسکریپت:

$bash -n b_script.sh

روش اشکال زدایی a bash اسکریپت؟روش اشکال زدایی a bash اسکریپت؟

همانطور که پیش بینی می شد، به وضوح خطا را شناسایی کرد و آن را در صفحه نمایش داد terminal.

4 روش شناسایی متغیرهای تنظیم نشده در حین اشکال زدایی bash اسکریپت:

ایجاد اشتباه تایپی در هنگام نوشتن کد امری رایج است. اغلب، یک متغیر را اشتباه تایپ می کنید، که اجازه نمی دهد کد اجرا شود. برای شناسایی چنین خطایی از عبارت استفاده می کنیم “-u” گزینه. بیایید دوباره کد را اصلاح کنیم:

#! /صندوقچه/bash
echo “شماره 1 را وارد کنید”
خواندن شماره 1
echo “شماره 2 را وارد کنید”
خواندن شماره 2
اگر [ $num1 -gt $number2 ]
سپس
echo “عدد 1 بزرگتر از عدد 2 است”
elif [ $number1 -eq $number2 ]
سپس
echo “عدد 1 برابر است با عدد 2”
دیگر
echo “عدد 2 بزرگتر از عدد 1 است”
فی

روش اشکال زدایی a bash اسکریپت؟روش اشکال زدایی a bash اسکریپت؟

در ابتدا “اگر” عبارت شرطی، من به را تغییر نام دادم “شماره 1” متغیر به “num1”. اکنون “num1” یک متغیر تنظیم نشده است. حالا اسکریپت را اجرا کنید:

$bash -u b_script.sh

روش اشکال زدایی a bash اسکریپت؟روش اشکال زدایی a bash اسکریپت؟

خروجی نام یک متغیر تنظیم نشده را شناسایی کرده و به صراحت نمایش می دهد.

5. روش اشکال زدایی بخش خاصی از bash اسکریپت:

حالت xtrace هر خط کد را پردازش می کند و خروجی می دهد. با این حال، یافتن خطاها در یک کد بزرگ وقت گیر خواهد بود اگر از قبل بدانیم کدام قسمت به طور بالقوه باعث ایجاد خطا می شود. خوشبختانه، xtrace همچنین به شما امکان می دهد بخش خاصی از کد را اشکال زدایی کنید، که می تواند با استفاده از “تنظیم” فرمان محل “ست -x” در ابتدای قسمتی که باید اشکال زدایی شود و سپس “ست + x” در پایان. به عنوان مثال، من می خواهم عبارات شرطی را اشکال زدایی کنم “b_script.sh”، بنابراین من تمام عبارات شرطی را در آن قرار می دهم “ست -x” و “ست + x” گزینه هایی که در کد زیر نشان داده شده است:

#! /صندوقچه/bash
echo “شماره 1 را وارد کنید”
خواندن شماره 1
echo “شماره 2 را وارد کنید”
خواندن شماره 2
تنظیم -ایکس
اگر [ $number -gt $number2 ]
سپس
echo “عدد 1 بزرگتر از عدد 2 است”
elif [ $number1 -eq $number2 ]
سپس
echo “عدد 1 برابر است با عدد 2”
دیگر
echo “عدد 2 بزرگتر از عدد 1 است”
فی
تنظیم +x

روش اشکال زدایی a bash اسکریپت؟روش اشکال زدایی a bash اسکریپت؟

اکنون اسکریپت را با استفاده از آن اجرا کنید “bash b_script.sh”.

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

روش اشکال زدایی a bash اسکریپت؟روش اشکال زدایی a bash اسکریپت؟

خروجی فقط شرایط if را همانطور که مشخص شده است اشکال زدایی می کند.

6. روش اشکال زدایی a bash اسکریپت با استفاده از دستور “trap”:

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

#! /صندوقچه/bash
تله ‘echo “خط ${LINENO}: عدد اول $number1، عدد دوم $number2 و مجموع $sum است” “ اشکال زدایی
echo “اولین شماره را وارد کنید”
خواندن شماره 1
echo “شماره دوم را وارد کنید”
خواندن شماره 2
مجموع=$[number1 + number2]
echo “مجموع است $ مجموع

روش اشکال زدایی a bash اسکریپت؟روش اشکال زدایی a bash اسکریپت؟

این “تله” فرمان با “اشکال زدایی” سیگنال وضعیت متغیرها را نمایش می دهد “شماره 1”، “شماره 2” و “جمع” پس از اجرای هر خط همانطور که در تصویر خروجی زیر نشان داده شده است:

روش اشکال زدایی a bash اسکریپت؟روش اشکال زدایی a bash اسکریپت؟

بلوک های زرد فضاهای خالی هستند زیرا کاربر هنوز هیچ ورودی وارد نکرده است. با وارد کردن مقادیر توسط کاربر، این فضاها پر می شوند. این روش در رفع اشکال نیز بسیار مفید است bash اسکریپت ها

7. روش اشکال زدایی a bash اسکریپت با حذف globbing فایل با استفاده از گزینه “-f”:

globbing فایل یک است process پیدا کردن فایل هایی با کاراکترهای عام، به عنوان مثال، “*” و “؟”. در بسیاری از مواقع، هنگام اشکال زدایی، نیازی به گسترش فایل ها ندارید. در چنین مواردی، می توانید با استفاده از globbing فایل را مسدود کنید “-f” گزینه. بیایید با یک فیلمنامه آن را درک کنیم “fglobe_script.sh”:

#! /صندوقچه/bash
echo “نمایش همه فایل های متنی.”
ls *txt

روش اشکال زدایی a bash اسکریپت؟روش اشکال زدایی a bash اسکریپت؟

کد بالا تمام فایل های متنی موجود در فهرست فعلی را نمایش می دهد، اجرا کنید:

$bash fglobe_script.sh

روش اشکال زدایی a bash اسکریپت؟روش اشکال زدایی a bash اسکریپت؟

برای خاموش کردن globbing فایل، از “-f” گزینه:

$bash fglobe_script.sh

روش اشکال زدایی a bash اسکریپت؟روش اشکال زدایی a bash اسکریپت؟

به طور مشابه، شما می توانید آن را با shebang و با استفاده کنید “تنظیم” فرمان نیز:

#! /صندوقچه/bash
echo “نمایش همه فایل های متنی.”
ls *txt
تنظیم
echo “نمایش تمام فایل های متنی”
ls *txt
تنظیم +f

روش اشکال زدایی a bash اسکریپت؟روش اشکال زدایی a bash اسکریپت؟

حالا، فرار کن “bash fglobe_script.sh”:

روش اشکال زدایی a bash اسکریپت؟روش اشکال زدایی a bash اسکریپت؟

قسمت محصور شده با “set -f/set +f” گزینه ها انجام نشد process دستورات با کاراکترهای عام

8. روش ترکیب گزینه های اشکال زدایی برای اشکال زدایی اسکریپت پوسته:

ما فقط از یک گزینه در تکنیک های اشکال زدایی فوق الذکر استفاده می کنیم، اما می توانیم گزینه های مختلف را برای درک بهتر ترکیب کنیم. اجرا کنیم “-ایکس” و “-v” گزینه های به “sum_script.sh” اسکریپت من از “sum_script.sh” اسکریپت

#! /صندوقچه/bash
echo “اولین شماره را وارد کنید”
خواندن شماره 1
echo “شماره دوم را وارد کنید”
خواندن شماره 2
مجموع=$[number1 + number2]
echo “مجموع است $ مجموع

روش اشکال زدایی a bash اسکریپت؟روش اشکال زدایی a bash اسکریپت؟

حالا اجرا کنید:

$bash -xv sum_script.sh

روش اشکال زدایی a bash اسکریپت؟روش اشکال زدایی a bash اسکریپت؟

هر دو “-ایکس” و “-v” همانطور که در تصویر خروجی نشان داده شده است، خروجی ها ترکیب می شوند. به طور مشابه، ما همچنین می توانیم ترکیب کنید “-u” گزینه ای با کلمه “-v” برای تشخیص خطا. دارم تعویض میکنم “شماره 1” متغیر با “تعداد” در خط ششم فیلمنامه:

#! /صندوقچه/bash

است $ number2 و مجموع است $ مجموع“اشکال زدایی
echo “
شماره اول را وارد کنید
شماره 1 را بخوانید
echo “
شماره دوم را وارد کنید
شماره 2 را بخوانید
مجموع=$[num + number2]
echo “
را مجموع است $ مجموع

روش اشکال زدایی a bash اسکریپت؟روش اشکال زدایی a bash اسکریپت؟

برای مشاهده خروجی، دستور زیر را اجرا کنید:

$bash -uv sum_script.sh

روش اشکال زدایی a bash اسکریپت؟روش اشکال زدایی a bash اسکریپت؟

9. روش تغییر مسیر گزارش اشکال زدایی به یک فایل:

ذخیره گزارش اشکال زدایی a bash اسکریپت به یک فایل می تواند در بسیاری از موقعیت ها مفید باشد. این کمی مشکل است زیرا هدایت کردن گزارش اشکال زدایی به یک فایل. ما از چند متغیر خاص استفاده می کنیم. بیایید آن را اجرا کنیم روی “b_script.sh” کد:

#! /صندوقچه/bash
اجرایی 5> dubug_report.log
BASH_XTRACED=“5”
PS4=‘$LINENO–‘
echo “شماره 1 را وارد کنید”
خواندن شماره 1
echo “شماره 2 را وارد کنید”
خواندن شماره 2
اگر [ $number -gt $number2 ]
سپس
echo “عدد 1 بزرگتر از عدد 2 است”
elif [ $number1 -eq $number2 ]
سپس
echo “عدد 1 برابر است با عدد 2”
دیگر
echo “عدد 2 بزرگتر از عدد 1 است”
فی

روش اشکال زدایی a bash اسکریپت؟روش اشکال زدایی a bash اسکریپت؟

در خط دوم کد مشاهده می شود که خروجی را به a هدایت می کنیم “debug_report.log” فایل با استفاده از “exec” دستور با توصیفگر فایل 5 (FD5).

exec 5> debug_report.log: این “exec” دستور هر چیزی را که در پوسته اتفاق می افتد به یک فایل هدایت می کند “debug_report.log.”

BASH_XTRACEFD=”5”: این هست یک خاص bash متغیر و در هیچ پوسته دیگری قابل استفاده نیست. باید یک توصیفگر فایل معتبر به آن اختصاص داده شود، و bash خروجی استخراج شده را در می نویسد “debug_report.log.”

PS4=’$LINENO– ‘: همچنین یک است bash متغیر استفاده می شود print شماره خط هنگام اشکال زدایی با استفاده از حالت xtrace. مقدار پیش فرض PS4 است “+” امضا کردن

اسکریپت بالا در حال تولید یک فایل log به نام است “debug_report.log” برای خواندن آن، از “گربه” دستور:

روش اشکال زدایی a bash اسکریپت؟روش اشکال زدایی a bash اسکریپت؟

نتیجه:

یک کد پر از اشکال می تواند بر عملکرد برنامه تأثیر بگذارد و برای سخت افزار نیز مضر باشد. اشکال زدایی برای هر برنامه ای بسیار حیاتی است زیرا باعث کارآمدتر شدن برنامه می شود. پیدا کردن خطاهای موجود و احتمالی در طول توسعه یک برنامه می تواند از رفتار غیرمنتظره برنامه شما جلوگیری کند. کدهای بزرگ معمولاً به اشکال زدایی فعال نیاز دارند که با حذف تکه های کد مصرف کننده، کارایی کد را افزایش می دهد.

بسیاری از زبان‌ها و محیط‌های برنامه‌نویسی دیباگرهای همراه خود را دارند. که در bash برنامه نویسی، تکنیک های مختلفی را می توان برای اشکال زدایی اسکریپت پیاده سازی کرد. این راهنما به طور کامل متمرکز شده است روی تمام روش هایی که می توان برای یافتن باگ ها استفاده کرد bash اسکریپت ها بنابراین هر زمان که احساس کردید که bash اسکریپت مطابق انتظار عمل نمی کند، از هر یک از تکنیک های ذکر شده در بالا استفاده کنید، اما حالت xtrace (-x) در بیشتر موارد بسیار مفید است.

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

زمان انتشار: 1402-12-31 14:40:03

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

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

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