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

سرور مجازی NVMe

روش استفاده از گزینه Bash “Set –X”.

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


دستور set در لینوکس برای تنظیم و تنظیم گزینه های خاص استفاده می شود. این گزینه ها رفتار یک اسکریپت معین را مدیریت می کنند و اجرای کار را بدون خطا فعال می کنند. در این مقاله از گزینه x با دستور set استفاده می کنیم که به Bash اطلاع می دهد تا عبارات را در حین پردازش نمایش دهد. زمانی که باید تعیین کنیم کدام خطوط و در چه ترتیبی اجرا شده اند، برای اشکال زدایی بسیار مفید است. عملیات set -x را می توان مستقیماً در یک پوسته Bash باز یا در یک اسکریپت Bash به کار برد. در مثال های زیر از دستور set با گزینه x برای فعال و غیرفعال کردن قابلیت های مختلف استفاده می کنیم.

مثال 1: برنامه با استفاده از Set -X در یک اسکریپت Bash

در اینجا، فایل “Bash1.sh” را ایجاد می کنیم و اسکریپت را برای استفاده از گزینه set -x ارائه می کنیم. ما از دستور “set -x” برای فعال کردن اشکال زدایی استفاده می کنیم زیرا اسکریپت Bash به طور پیش فرض اشکال زدایی را فعال نمی کند. ابتدا دستور sh-band را در اسکریپت خود وارد می کنیم. پس از آن، ما از اصلاح کننده “set” با پرچم “-x” آن برای فعال کردن اشکال زدایی استفاده می کنیم. سپس، دستور “echo” را که عبارت “My First Statement” را ارائه می دهد، اعلام می کنیم. مانند این دستور echo، عبارت دوم من را با استفاده از اصلاح کننده “echo” تعریف می کنیم. سپس اسکریپت Bash را با باز کردن آن اجرا می کنیم terminal برای نشان دادن نتایج فعال کردن اشکال زدایی از دستور set -x.

#!/bin/bash

تنظیم -ایکس

اکو “اولین بیانیه من”

اکو “گفته دوم من”

در terminal، برای کامپایل کردن فایل Bash1.sh از کلمه کلیدی “bash” استفاده می کنیم. پس از آن، فایل داده شده را اجرا می کنیم که دستور echo را با علامت “+” همراه با دستور حاصل از دستورات echo چاپ می کند.

روش استفاده از گزینه Bash "Set –X".

مثال 2: برنامه با استفاده از Set -X در حالت غیرفعال در یک اسکریپت Bash

در مثال اخیر، ما روش فعال کردن اشکال زدایی را با استفاده از دستور “set -x” نشان دادیم. اکنون، ما راهی برای غیرفعال کردن اشکال زدایی در اسکریپت Bash با استفاده از دستور “set” اما با گزینه “x” در قالبی متفاوت ارائه می دهیم. در اینجا، اسکریپت را در یک “Bash2.sh” می سازیم. ابتدا از دستور “set -x” استفاده می کنیم که اشکال زدایی Bash را فعال می کند. سپس، دستور “echo” را برای چاپ عبارت “print statement1” تنظیم می کنیم. پس از این، دستور “set +x” را برای غیرفعال کردن اشکال زدایی اسکریپت Bash اجرا می کنیم. تفاوت فعال و غیرفعال کردن اشکال زدایی در این است که از گزینه x با علامت منفی “-” برای فعال کردن اشکال زدایی استفاده می کنیم. “x” با نماد مثبت “+” نشان دهنده غیرفعال کردن اشکال زدایی Bash است.

#!/bin/bash

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

تنظیم -ایکس

اکو “چاپ بیانیه 1”

تنظیم +x

اکو “چاپ بیانیه2”

اسکریپت قبلی Bash در terminal با استفاده از دستور “bash ./Bash2.sh”. نتیجه این اسکریپت دستور “echo” را با خروجی آن دستور echo چاپ می کند زیرا اشکال زدایی فعال است. سپس دستور “set +x” در جایی که اشکال زدایی را غیرفعال می کنیم چاپ می شود. حالت غیرفعال کردن اشکال زدایی Bash به سادگی خروجی فرمان echo را همانطور که در تصویر زیر مشاهده می کنید چاپ می کند:

روش استفاده از گزینه Bash "Set –X".روش استفاده از گزینه Bash "Set –X".

مثال 3: برنامه با استفاده از Set -X در فرمان خط Shebang در یک اسکریپت Bash

ما راه دیگری برای فعال کردن اشکال زدایی در Bash با گنجاندن پرچم “-x” در خط shebang داریم. در اینجا، اسکریپت را در داخل “Bash3.sh” ایجاد می کنیم. ما با تعریف دستور shebang “#!/bin/bash -x” شروع می کنیم که در آن گزینه “-x” نیز برای فعال کردن اشکال زدایی اسکریپت Bash مشخص شده است. سپس، صفت «MyName» را ایجاد می کنیم که به آن مقدار «لینوکس» اختصاص می دهیم. ویژگی بیشتر با دستور echo تنظیم می شود تا مقدار آن را چاپ کند. پس از این، اشکال زدایی را با دستور “set +x” غیرفعال می کنیم. ویژگی “MySalary” را اعلام می کنیم و آن را با مقدار “7000” برای اشکال زدایی مقداردهی اولیه می کنیم. کلمه کلیدی “echo” روی ویژگی “MySalary” برای خروجی مقدار فراخوانی می شود. در مرحله بعد، دوباره یک مورد برای فعال کردن اشکال زدایی در اسکریپت Bash تعریف می کنیم. برای این منظور دستور “set +x” را تعریف می کنیم. پس از آن، ویژگی “MyLanguage” را دوباره با مقدار “English” تنظیم می کنیم تا حالت فعال شده اشکال زدایی را بررسی کنیم.

#!/bin/bash -x

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

نام من=لینوکس
اکو $MyName

تنظیم +x

حقوق من=7000
اکو $MySalary

تنظیم -ایکس

زبان من= انگلیسی
اکو $MyLanguage

هنگامی که “Bash3.sh” در terminal، ابتدا عبارت MyName=Linux و عبارت echo را با مقدار حاصل آن چاپ می کند. مقدار “7000” مقدار حاصل از عبارت اکو است که در آن اشکال زدایی فعال نشده است. بعد نیز عبارت چاپ شده “MyLanguage=English” و عبارت echo با مقدار خروجی “English” به عنوان حالت اشکال زدایی فعال است.

روش استفاده از گزینه Bash "Set –X".روش استفاده از گزینه Bash "Set –X".

مثال 4: برنامه با استفاده از Set -X در یک اسکریپت Bash برای عبارت شرطی

اکنون، ما از دستور “set -x” برای اشکال زدایی دستور شرطی استفاده می کنیم که نتیجه را اجرا می کند و همچنین هر مرحله از خروجی را از اسکریپت Bash چاپ می کند تا درک بهتری از اسکریپت داشته باشیم. در اینجا، ما اسکریپت Bash را در فایل “Bash4.sh” تولید می کنیم. اولین مرحله اسکریپت این است که دستور “set -x” را اعلام کنید. با استفاده از دستور “set -x”، حالت اشکال زدایی اسکریپت Bash خود را فعال می کنیم. سپس صفت “y” را ایجاد کرده و مقدار عددی “50” را مشخص می کنیم. پس از آن، حلقه while را که در آن شرط به صورت “$y -gt 0” داده می شود، مستقر می کنیم. عبارت «do and done» دارای عملیاتی است که شرط while را برآورده می کند. دستور “echo” با یک متغیر “$y” تخصیص داده می شود که هر بار مقدار کاهش را چاپ می کند تا زمانی که حلقه while خاتمه یابد.

تنظیم -ایکس
y=50

در حالی که [ $y -gt 0 ]; انجام دادن

y=$[ $y10 ]

اکو $y
خواب 1
انجام شده

خروجی با هر مرحله از اسکریپت که در آن مقادیر شرطی به روز می شوند، نمایش داده می شود.

روش استفاده از گزینه Bash "Set –X".روش استفاده از گزینه Bash "Set –X".

نتیجه

استفاده از دستور “set -x” در Bash یک اشکال زدایی است process که کد را با تشخیص اشکالات موجود در اسکریپت عیب یابی می کند. وقتی که توسعه یک اسکریپت بدون خطا برای کاربران چالش برانگیز است، “مجموعه -x” کمک می کند، به خصوص زمانی که شامل تعداد زیادی خط باشد. ما اسکریپت های Bash را با استفاده از دستورات “set -x” و “set +x” برای نمایش ارائه کردیم. علاوه بر این، می توانیم از گزینه “x” نیز استفاده کنیم روی را terminal به عنوان “bash -x ./FileName.sh” اگر نخواهیم از دستور “set -x” در اسکریپت استفاده کنیم. با این کار به همین نتیجه می رسیم.

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

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

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

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

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