چگونه خطاها را در اسکریپت های Bash در سال 2025 انجام دهیم؟

اسکریپت Bash یک مهارت اساسی برای مدیران و توسعه دهندگان سیستم است حتی وقتی وارد سال 2025 می شویم. رسیدگی به خطا بخش مهمی در نوشتن اسکریپت های قوی و کارآمد Bash است. این راهنمای جامع شما را از طریق بهترین شیوه ها و تکنیک هایی که باید استفاده کنید برای رسیدگی به خطاها به طور مؤثر در اسکریپت های Bash خود طی می کند.
درک رسیدگی به خطا در Bash
رسیدگی به خطا در اسکریپت های Bash برای شناسایی ، رفع و جلوگیری از خطا در هنگام اجرای ضروری است. BASH بر خلاف زبانهای برنامه نویسی تمام عیار که سازه های خطای ساختاری را ارائه می دهند ، به وضعیت های خروج و دستورات داخلی متکی است. هر دستور در Bash وضعیت خروج را برمی گرداند که نشان دهنده موفقیت (0) یا عدم موفقیت (غیر صفر) است.
1. از وضعیت خروج استفاده کنید
ساده ترین راه برای رسیدگی به خطاها ، بررسی وضعیت خروج دستورات است. شما می توانید این کار را با بررسی متغیر خاص انجام دهید $?
، که کد خروج آخرین فرمان اجرا شده را در خود جای داده است.
#!/bin/bash
ls /nonexistent_directory
if [ $? -ne 0 ]; then
echo "Error: Directory does not exist."
exit 1
fi
2. پیاده سازی set
گزینه های فرمان
Bash فراهم می کند set
فرمان داخلی برای کنترل رفتار اسکریپت ها و تقویت کنترل خطا. گزینه های مهم عبارتند از:
-
-e
: اگر یک دستور با وضعیت غیر صفر خارج شود ، بلافاصله از آن خارج شوید. -
-u
: متغیرهای UNSET را به عنوان یک خطا درمان کنید و بلافاصله از آن خارج شوید. -
-o pipefail
: کد خروج آخرین فرمان را که وضعیت غیر صفر را در یک خط لوله بازگرداند ، برگردانید.
#!/bin/bash
set -eu -o pipefail
grep "search_term" /nonexistent_file
echo "This line will not be executed if grep fails."
3. استفاده کنید trap
فرمان
برای اجرای دستورات پاکسازی یا ارائه بازخورد کاربر در مورد خروج از اسکریپت یا خطاها ، از آن استفاده کنید trap
فرمان این سیگنال ها و خطاها را به خود جلب می کند و امکان انجام اقدامات مشخص را فراهم می کند.
#!/bin/bash
trap "echo 'An error occurred! Exiting...'; exit 1" ERR
cp /nonexistent_file /destination
4. منطق شرطی را اجرا کنید
اظهارات مشروط مانند if
وت case
برای رسیدگی به سناریوهای خطای خاص و تصمیم گیری بر اساس موفقیت یا خرابی فرمان.
#!/bin/bash
if ! mkdir /existing_directory 2>/dev/null; then
echo "Failed to create directory as it already exists."
fi
برای بینش بیشتر در مورد منطق مشروط ، این راهنما را در مورد اسکریپت Bash بررسی کنید.
تکنیک های پیشرفته
5. ورود به سیستم و اشکال زدایی
پیام های خطای ورود به یک پرونده می تواند برای اشکال زدایی ارزشمند باشد. با استفاده از خطای خطای را به یک پرونده ورود هدایت کنید 2>
و استخدام set -x
برای ردیابی اشکال زدایی ، که قبل از اجرای آن ، هر دستور را چاپ می کند.
#!/bin/bash
exec 2>error.log
set -x
rm /nonexistent_file
6. عبارات منظم در مدیریت خطا
استفاده از عبارات منظم Bash می تواند در تطبیق الگوی و مدیریت رشته های خطای خاص کمک کند. این می تواند پاسخ های سریع را بر اساس انواع خطا ساده تر کند.
برای اطلاعات بیشتر در مورد Regex در Bash ، به این وبلاگ در Bash Regex مراجعه کنید.
انتقال به پاورشل
از آنجا که شما در استفاده از خطا در Bash مهارت ایجاد می کنید ، ممکن است یادگیری سایر زبان های اسکریپت مانند PowerShell را در نظر بگیرید ، به خصوص اگر کار شما از UNIX به محیط های ویندوز منتقل شود. برای تبدیل یکپارچه شخصیت های خاص Bash به PowerShell ، به این راهنمای تبدیل مراجعه کنید.
پایان
رسیدگی به خطاها در اسکریپت های Bash برای حفظ اسکریپت های قوی ، کارآمد و بدون خطا ضروری است. با استفاده از وضعیت خروج ، set
گزینه های فرمان ، trap
، ورود به سیستم ، و Regex ، می توانید اسکریپت های انعطاف پذیر ایجاد کنید که در برابر مشکلات احتمالی مقاومت کند. همانطور که در سال 2025 اسکریپت می کنید ، به یاد داشته باشید که یادگیری و تطبیق با بهترین شیوه های نوظهور باعث افزایش کارآیی و قابلیت اطمینان اسکریپت می شود.