حالة الخروج
تصدر الأوامر (بما في ذلك البرامج النصية ووظائف الصدفة التي نكتبها) قيمة للنظام عندما تنتهي ، تسمى حالة الخروج. تشير هذه القيمة ، وهي عدد صحيح في النطاق من 0 إلى 255 ، إلى نجاح أو فشل تنفيذ الأمر. حسب الاصطلاح ، تشير القيمة الصفرية إلى النجاح وأي قيمة أخرى تشير إلى الفشل. توفر الصدفة متغيرًا يمكننا استخدامه لفحص حالة الخروج. هنا نراه في العمل:
[me @ linuxbox ~] $ ls -d / usr / bin
/ البيرة / بن
[me @ linuxbox ~] $ صدى دولار؟
0
[me @ linuxbox ~] $ ls -d / بن / usr
ls: لا يمكن الوصول إلى / bin / usr: لا يوجد مثل هذا الملف أو الدليل [me @ linuxbox ~] $ صدى دولار؟
2
[me @ linuxbox ~] $ ls -d / usr / bin
/ البيرة / بن
[me @ linuxbox ~] $ صدى دولار؟
0
[me @ linuxbox ~] $ ls -d / بن / usr
ls: لا يمكن الوصول إلى / bin / usr: لا يوجد مثل هذا الملف أو الدليل [me @ linuxbox ~] $ صدى دولار؟
2
حالة الخروج
في هذا المثال ، نقوم بتنفيذ ls الأمر مرتين. في المرة الأولى ، يتم تنفيذ الأمر بنجاح. إذا عرضنا قيمة المعلمة $?، نرى أنه صفر. نقوم بتنفيذ ملف ls الأمر مرة ثانية (تحديد دليل غير موجود) ، مما يؤدي إلى حدوث خطأ ، وفحص المعلمة $? تكرارا. هذه المرة يحتوي على 2 ، مما يشير إلى أن الأمر واجه خطأ. تستخدم بعض الأوامر قيم حالة خروج مختلفة لتوفير تشخيص للأخطاء ، في حين أن العديد من الأوامر تخرج ببساطة بقيمة واحدة عندما تفشل. غالبًا ما تتضمن صفحات الرجل قسمًا بعنوان "حالة الخروج" ، يصف الرموز المستخدمة. ومع ذلك ، يشير الصفر دائمًا إلى النجاح.
توفر القشرة أمرين مدمجين بسيطين للغاية لا يفعلان شيئًا سوى إنهاء حالة الخروج إما صفر أو حالة خروج واحدة. ال صحيح الأمر دائمًا ينفذ بنجاح - بالكامل و زائف يتم تنفيذ الأمر دائمًا دون جدوى:
[me @ linuxbox ~] $ صحيح [me @ linuxbox ~] $ صدى دولار؟ 0
[me @ linuxbox ~] $ زائف [me @ linuxbox ~] $ صدى دولار؟ 1
[me @ linuxbox ~] $ صحيح [me @ linuxbox ~] $ صدى دولار؟ 0
[me @ linuxbox ~] $ زائف [me @ linuxbox ~] $ صدى دولار؟ 1
يمكننا استخدام هذه الأوامر لمعرفة كيفية عمل ملف if يعمل البيان. ماذا if العبارة التي تفعلها حقًا هي تقييم نجاح أو فشل الأوامر:
[me @ linuxbox ~] $ إذا كان هذا صحيحا؛ ثم صدى "هذا صحيح" ؛ فاي
انها حقيقة.
[me @ linuxbox ~] $ إذا كان خطأ ثم صدى "هذا صحيح" ؛ فاي
[me @ linuxbox ~] $
[me @ linuxbox ~] $ إذا كان هذا صحيحا؛ ثم صدى "هذا صحيح" ؛ فاي
انها حقيقة.
[me @ linuxbox ~] $ إذا كان خطأ ثم صدى "هذا صحيح" ؛ فاي
[me @ linuxbox ~] $
الامر صدى "هذا صحيح". يتم تنفيذه عندما يتبع الأمر if ينفذ بنجاح ، ولا يتم تنفيذه عند اتباع الأمر if لا ينفذ بنجاح. إذا اتبعت قائمة الأوامر if، يتم تقييم الأمر الأخير في القائمة:
[me @ linuxbox ~] $ إذا كان خطأ ؛ حقيقية؛ ثم صدى "هذا صحيح" ؛ fi هذا صحيح.
[me @ linuxbox ~] $ إذا كان هذا صحيحًا ؛ خاطئة؛ ثم صدى "هذا صحيح" ؛ fi [me @ linuxbox ~] $
[me @ linuxbox ~] $ إذا كان خطأ ؛ حقيقية؛ ثم صدى "هذا صحيح" ؛ fi هذا صحيح.
[me @ linuxbox ~] $ إذا كان هذا صحيحًا ؛ خاطئة؛ ثم صدى "هذا صحيح" ؛ fi [me @ linuxbox ~] $