ما هي الـ Exit Codes؟
الـ Exit Codes هي أرقام تُستخدم في نظام لينكس (وأنظمة التشغيل المشابهة) للإشارة إلى حالة انتهاء تنفيذ برنامج أو أمر معين. عندما ينتهي برنامج ما، يقوم بإرجاع قيمة رقمية تُعرف بـ “Exit Code” إلى النظام. هذه القيمة تساعد في تحديد ما إذا كان البرنامج قد انتهى بنجاح أو بوجود خطأ.
القيم الشائعة للـ Exit Codes
- 0: يشير إلى أن البرنامج انتهى بنجاح دون أي أخطاء.
- 1: يشير إلى حدوث خطأ عام.
- 2: يشير إلى خطأ في استخدام الأوامر.
- 126: يشير إلى أن الأمر غير قابل للتنفيذ.
- 127: يشير إلى أن الأمر غير موجود.
- 130: يشير إلى أن البرنامج تم إيقافه باستخدام إشارة مقاطعة (مثل Ctrl+C).
كيفية استخدام الـ Exit Codes في السكربتات
مثال بسيط
لنأخذ مثالًا بسيطًا على سكربت Bash:
#!/bin/bash
# تنفيذ أمر
mkdir /some/directory
# التحقق من Exit Code
if [ $? -eq 0 ]; then
echo "تم إنشاء المجلد بنجاح"
else
echo "فشل في إنشاء المجلد"
fi
في هذا المثال:
- يتم تنفيذ أمر
mkdir
لإنشاء مجلد. - يتم التحقق من Exit Code باستخدام
$?
. إذا كان يساوي 0، يتم طباعة رسالة نجاح، وإلا يتم طباعة رسالة فشل.
استخدام Exit Codes في دوال
يمكنك أيضًا استخدام Exit Codes داخل دوال في السكربتات:
#!/bin/bash
# دالة لإنشاء مجلد
create_directory() {
mkdir $1
if [ $? -eq 0 ]; then
echo "تم إنشاء المجلد $1 بنجاح"
else
echo "فشل في إنشاء المجلد $1"
fi
}
# استدعاء الدالة
create_directory /some/directory
استخدام Exit Codes مع أوامر متعددة
إذا كنت تستخدم أوامر متعددة، يمكنك التحقق من Exit Code لكل أمر على حدة:
#!/bin/bash
# تنفيذ أوامر متعددة
cp /source/file /destination/
if [ $? -ne 0 ]; then
echo "فشل في نسخ الملف"
exit 1
fi
mv /destination/file /new/location/
if [ $? -ne 0 ]; then
echo "فشل في نقل الملف"
exit 1
fi
echo "تمت جميع العمليات بنجاح"
استخدام Exit Codes مع شروط معقدة
يمكنك أيضًا استخدام Exit Codes مع شروط أكثر تعقيدًا:
#!/bin/bash
# تنفيذ أمر
ls /some/directory
exit_code=$?
# التحقق من Exit Code
if [ $exit_code -eq 0 ]; then
echo "المجلد موجود"
elif [ $exit_code -eq 2 ]; then
echo "المجلد غير موجود"
else
echo "حدث خطأ غير معروف"
fi
لماذا هي مهمة؟
تعتبر الـ Exit Codes مهمة لأنها تساعد في إدارة الأخطاء والتحقق من نجاح الأوامر في السكربتات والبرامج. باستخدامها، يمكنك كتابة سكربتات أكثر موثوقية وقابلة للصيانة.