از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
چگونه بررسی کنیم که آیا یک فرمان در Bash موفق بوده است
سرفصلهای مطلب
هنگام نوشتن یک اسکریپت یا اجرای یک دستور، منطقی است که بدانیم آیا موفق بوده است یا خیر. در لینوکس، زمانی که دستوری اجرا میشود، یک کد خروج دریافت میکنیم که تأیید میکند که آیا دستور اجرا شده موفق بوده است یا خیر. هنگام اجرای دستوری که متکی است روی در خروجی دستور دیگر، باید کد خروج فرمان اول را واکشی کنید تا مشخص شود که آیا دستور دیگر اجرا خواهد شد یا خیر. این راهنما تمرکز دارد روی دو روش برای بررسی موفقیت آمیز بودن دستور در Bash.
دو روش برای بررسی موفقیت آمیز بودن دستور در Bash
وقتی فرمانی را در Bash اجرا می کنید، باید یک کد خروج یا وضعیت را برگرداند. میتوانید از عبارت «if» برای ارزیابی مقدار بازگشتی یک دستور استفاده کنید یا از متغیر ویژه ($?) برای بررسی کد خروج یا وضعیت فرمان اجرا شده استفاده کنید. بیایید وارد جزئیات شویم.
1. استفاده از عبارت Bash If
با عبارت “اگر”.، شما می توانید مقدار بازگشتی یک دستور را که در یک عبارت اجرا می شود ارزیابی کنید. عبارت “if” وضعیت خروج را واکشی می کند. بسته به روی عبارت شما، دستور نتیجه را در عبارت شرطی if-else اجرا می کند.
به عنوان مثال، ما می توانیم یک اسکریپت ایجاد کنیم که هر فایل متنی را در دایرکتوری فعلی حذف می کند و در صورت اجرای دستور، پیام موفقیت آمیز یا در صورت عدم موفقیت دستور، پیام شکست را برمی گرداند.
اسکریپت را با استفاده از دستور chmod قابل اجرا کنید. سپس، آن را اجرا کنید.
توجه داشته باشید که دستور ما موفق نمی شود، بنابراین پیام شکست خورده نمایش داده می شود. با این حال، اگر دستور موفق شود، خروجی متفاوتی دریافت می کنیم.
میتوانید هنگام اجرای هر فرمانی در Bash از همین مفهوم استفاده کنید، به طوری که اگر دستور داده شده موفق نشد، یک خروجی داده شده را نمایش میدهد تا تأیید کند که دستور بعدی اجرا نمیشود زیرا فرمان اول قبلاً شکست خورده است.
2. استفاده از متغیر ویژه ($?)
متغیر ویژه ($?) کد خروج آخرین دستور اجرا شده را برمی گرداند. هنگامی که کد خروج را به صورت صفر برمی گرداند، به این معنی است که دستور با موفقیت انجام شده است. با این حال، هر عدد دیگری به این معنی است که فرمان شما موفق نبوده است.
با استفاده از متغیر ویژه برای بررسی موفقیت آمیز بودن یک فرمان، باید از یک عملگر مقایسه باینری (eq) استفاده کنید تا ببینید آیا کد خروج صفر است یا خیر. اگر نه، قسمت دیگری از دستور شرطی if-else را اجرا می کند.
دستور را در اسکریپت خود اجرا کنید. سپس یک عبارت شرطی if-else اضافه کنید تا بررسی کنید که آیا دستور شما اجرا شده است یا خیر. بیایید مثال قبلی خود را برای استفاده از متغیر ویژه به صورت زیر ویرایش کنیم:
اگر اسکریپت را اجرا کنیم، خروجی ای برمی گرداند که تأیید می کند که موفق نبوده است زیرا هیچ فایل متنی برای حذف وجود ندارد. بنابراین به جای “if” دستور را در قسمت else اجرا می کند.
فرض کنید فایل های متنی در دایرکتوری فعلی داریم. می توانستیم خروجی متفاوتی داشته باشیم. در اینجا، پیام موفقیت را دریافت می کنیم که به این معنی است که کد خروج با بخش “اگر” مطابقت دارد.
در مورد قبلی، دستور با موفقیت انجام شد. ما می توانیم آن را بر اساس تأیید کنیم روی پیام خروجی که نمایش می دهد و تأیید می کند که کد خروجی دستور صفر است.
نتیجه
دو روش متداول برای بررسی موفقیت آمیز بودن دستور شما در Bash وجود دارد. بسته به اینکه می توانید از دستور شرطی if-else برای نمایش خروجی استفاده کنید روی آیا یک فرمان موفق شد همچنین، میتوانید از متغیر ویژه ($?) برای بررسی کد خروج یا وضعیت فرمان اجرا شده با استفاده از دستور if-else استفاده کنید.
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم
زمان انتشار: 1402-12-29 15:49:04