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

سرور مجازی NVMe

دستور Bash `set -x`

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


ضربه شدید تنظیم دستور برای اهداف زیادی در bash و گزینه های زیادی برای فعال یا غیرفعال کردن انواع مختلف ویژگی های محیط پوسته دارد. این -ایکس گزینه یکی از گزینه های دستور set است که برای فعال کردن ویژگی اشکال زدایی استفاده می شود bash اسکریپت برای عیب یابی «مجموعه -xاز دستور می توان استفاده کرد terminal یا داخل هر کدام bash اسکریپت اهداف مختلف برای استفاده از `مجموعه -xدستور ` در این آموزش توضیح داده شده است.

Debugging را فعال کنید

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

ویژگی اشکال زدایی را می توان با استفاده از دستور “set -x” در قسمت فعال کرد terminal یا داخل bash اسکریپت با استفاده از دستور «set –x». استفاده از دستور ‘set -x’ در قسمت بعدی آموزش نشان داده شده است.
ویژگی اشکال زدایی را نیز می توان با استفاده از گزینه x در زمان اجرای آن فعال کرد bash فایلی مانند دستور زیر:

$ bash -ایکس نام فایل.bash

ویژگی اشکال زدایی را می توان با استفاده از خط زیر در ابتدای اسکریپت نیز فعال کرد:

#!/bin/sh -x

Debugging را غیرفعال کنید

نیاز به غیرفعال کردن ویژگی اشکال زدایی دارد bash اسکریپت بعد از حل مشکل دستور “set +x” برای غیرفعال کردن ویژگی اشکال زدایی استفاده می شود.

مثال های مختلف از دستور “set -x”.

دو کاربرد مختلف از گزینه “set -x” با استفاده از مثال ها نشان داده شده است.

مثال-1: ویژگی Debugging را فعال و غیرفعال کنید

ایجاد یک bash فایل را با استفاده از اسکریپت زیر که قبل و بعد از استفاده از دستورهای ‘set -x’ و ‘set +x’ از کاربر ورودی می گیرد. قبل از استفاده از دستور “set -x” مقدار نام اول گرفته و چاپ می شود. مقدار نام خانوادگی پس از استفاده از دستور ‘set -x’ گرفته و چاپ می شود. سپس مقادیر نام و نام خانوادگی پس از استفاده از دستور ‘set +x’ چاپ می شود.

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

پیشنهاد می‌کنیم بخوانید:  روش استفاده از Regex با دستور awk

# ورودی بگیرید و چاپ کنید

خواندن “نام خود را وارد نمایید: “ نام کوچک

اکو “اسم کوچک شماست $firstname

دستور set -x را #فعال کنید

تنظیم -ایکس

#یک ورودی دیگر بگیرید و چاپ کنید

خواندن “نام خانوادگی خود را وارد کنید:” نام خانوادگی

اکو “نام خانوادگی شما است نام خانوادگی $

#دستور x را غیرفعال کنید

تنظیم +x

#متغیرها را چاپ کنید

اکو “نام کامل شما است $firstname نام خانوادگی $

خروجی:

پس از اجرای اسکریپت فوق خروجی زیر چاپ خواهد شد. با توجه به خروجی، هر عبارت از اسکریپت پس از اجرای دستور ‘set -x’ چاپ شده است.

دستور Bash `set -x`

مثال-2: اشکال زدایی اسکریپت با استفاده از دستور “set -x”.

ایجاد یک bash فایلی با اسکریپت زیر که با فعال کردن ویژگی اشکال زدایی یک نام فایل را برای خواندن از کاربر می گیرد. دستور “set -x” در ابتدای اسکریپت برای فعال کردن ویژگی اشکال زدایی استفاده شده است. سپس یک نام فایل از کاربر گرفته می شود. اگر نام فایلی توسط کاربر ارائه نشده باشد، پیامی چاپ خواهد شد. اگر نام فایل گرفته شده از کاربر وجود نداشته باشد یا یک فایل نباشد، پیغام خطا دیگری نمایش داده می شود. اگر نام فایل معتبر از کاربر گرفته شود، محتوای فایل چاپ خواهد شد.

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

#اشکال زدایی را فعال کنید

تنظیم -ایکس

#نام فایل را از کاربر بگیرید

اکو -n “نام فایل را وارد کنید:”

خواندن fn

#بررسی کنید که آیا نام فایل خالی است یا خیر

اگر [ $fn == “” ];

سپس

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

# بررسی کنید که آیا فایل وجود دارد یا خیر

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

elif [ ! -f $fn ];

سپس

#پیام خطای چاپ

اکو $fn وجود ندارد.”

دیگر

#محتوای فایل را چاپ کنید

گربه $fn

فی

خروجی:

خروجی زیر پس از اجرای اسکریپت فوق بدون ارائه هیچ نام فایل ظاهر می شود. خروجی نشان می دهد که مقدار خالی به عنوان نام فایل در نظر گرفته شده است. شرط “if” برای بررسی نام فایل خالی برای ورودی خالی درست برگردانده شده است. بنابراین، عبارت ‘echo’ برای پیام خطای چاپ برای گزینه اشکال زدایی و پیام خطا چاپ شده است.نام فایل موجود نیست” چاپ شده است.

دستور Bash `set -x`دستور Bash `set -x`

خروجی زیر پس از اجرای اسکریپت بالا با نام فایل ظاهر می شود. خروجی نشان می دهد که شرط “if” برای بررسی نام فایل خالی false و شرط “if” برای بررسی فایل غیرموجود نیز false برگردانده شده است. نام فایل ورودی، testfile.txt در مکان فعلی وجود دارد. بنابراین، «گربهدستور برای خواندن testfile.txt فایل اجرا شده و محتوای فایل چاپ شده است.

دستور Bash `set -x`دستور Bash `set -x`

خروجی زیر پس از اجرای اسکریپت بالا با نام فایل ظاهر می شود. خروجی نشان می‌دهد که شرط «اگر» برای بررسی نام فایل خالی، false است و شرط «اگر» برای بررسی پرونده‌ای که وجود ندارد، درست است، زیرا file1.txt در مکان فعلی وجود ندارد. بنابراین، «گربهدستور برای خواندن فایل اجرا نشده است و پیغام خطا می دهد.file1.txt وجود ندارد.” چاپ شده است.

دستور Bash `set -x`دستور Bash `set -x`

نتیجه

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

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

زمان انتشار: 1402-12-29 15:18:04

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

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

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