OnWorks Linux و Windows Online WorkStations

الشعار

استضافة مجانية على الإنترنت لمحطات العمل

<السابق | المحتويات | التالي>

رموز مفقودة أو غير متوقعة

خطأ شائع آخر هو نسيان إكمال أمر مركب ، مثل if or في حين. لنلق نظرة على ما يحدث إذا أزلنا الفاصلة المنقوطة بعد تجربه بالعربي في ال if أمر:



#! / بن / باش


# مشكلة: البرنامج النصي لتوضيح الأخطاء الشائعة رقم = 1

إذا كان [$ number = 1] إذًا

صدى "الرقم يساوي 1." آخر

صدى "الرقم لا يساوي 1."

fi

#! / بن / باش


# مشكلة: البرنامج النصي لتوضيح الأخطاء الشائعة رقم = 1

إذا كان [$ number = 1] إذًا

صدى "الرقم يساوي 1." آخر

صدى "الرقم لا يساوي 1."

fi


والنتيجة هي:



[me @ linuxbox ~] $ مشكلة

/ home / me / bin / trouble: السطر 9: خطأ في بناء الجملة بالقرب من رمز غير متوقع

"آخر"

/ home / me / bin / trouble: السطر 9: "else"

[me @ linuxbox ~] $ مشكلة

/ home / me / bin / trouble: السطر 9: خطأ في بناء الجملة بالقرب من رمز غير متوقع

"آخر"

/ home / me / bin / trouble: السطر 9: "else"


مرة أخرى ، تشير رسالة الخطأ إلى حدوث خطأ بعد المشكلة الفعلية. ما يحدث هو حقا ممتع جدا. كما نتذكر ، if يقبل قائمة الأوامر ويقيم كود الخروج للأمر الأخير في القائمة. في برنامجنا ، نعتزم أن تتكون هذه القائمة من أمر واحد ، [، وهو مرادف للاختبار. ال [ يأخذ الأمر ما يليه كقائمة من الوسائط ؛ في حالتنا أربع حجج: $ عدد، 1، =و ]. مع إزالة الفاصلة المنقوطة ، الكلمة then تمت إضافته إلى قائمة الوسائط ، وهو قانوني نحويًا. الأتى صدى الأمر قانوني أيضًا. يتم تفسيره على أنه أمر آخر في قائمة الأوامر if سيقيم لكود الخروج. ال آخر يتم الرد عليه بعد ذلك ، ولكنه في غير محله ، نظرًا لأن الغلاف يتعرف عليه باعتباره a كلمة محجوزة (كلمة لها معنى خاص للصدفة) وليس اسم الأمر ، ومن هنا جاءت الرسالة القديمة.


أفضل الحوسبة السحابية لنظام التشغيل في OnWorks: