إصلاح خطأ نحوي Bash بالقرب من رمز غير متوقع

نشرت: 2022-05-30
إصلاح خطأ نحوي Bash بالقرب من رمز غير متوقع

أصبح الترميز في Linux Bash Terminal ممارسة سائدة في قطاع الترميز. يواجه مهندسو البرمجيات والطلاب الذين يتعلمون لغة الترميز العديد من الأخطاء. إذا كنت قد رأيت الأخطاء بشكل متكرر مثل خطأ في بناء الجملة بالقرب من رمز غير متوقع '(' أو خطأ في بناء جملة Bash بالقرب من رمز مميز غير متوقع ، يمكنك محاولة الاعتماد على الطرق الموضحة في المقالة لتصبح مبرمجًا ماهرًا. اقرأ الطرق الموضحة في المقالة في طلب وصف وإصلاح الأخطاء في سطور الأوامر في ملفك.

إصلاح خطأ نحوي Bash بالقرب من رمز غير متوقع

محتويات

  • كيفية إصلاح خطأ نحوي Bash بالقرب من رمز غير متوقع
  • الطريقة الأولى: إصلاح الأخطاء يدويًا في كل سطر أوامر
  • الخطوة الأولى: قراءة محتوى الملف
  • الخطوة الثانية: إزالة فواصل أسطر Windows
  • الخطوة الثالثة: تعيين الأذونات للملف الذي تم إنشاؤه حديثًا
  • الخطوة الرابعة: تنسيق الكود في الملف
  • الطريقة 2: إعادة كتابة الرمز
  • الطريقة الثالثة: استخدم الأمر Dos2unix.exe

كيفية إصلاح خطأ نحوي Bash بالقرب من رمز غير متوقع

Linux Bash هو مترجم لسطر الأوامر لنظام Linux وهو بديل لـ Bourne Shell أو sh. تتم تسمية الملفات باستخدام تنسيق .sh في البرمجة النصية لنظام Linux Bash. إذا كانت هناك مشكلات في التنسيق في التعليمات البرمجية في البرنامج النصي shell ، فقد تواجه خطأً في بناء الجملة. إذا كان الخطأ قريبًا من ( الحرف ، فإن shell سيطالبك بالخطأ في السطر ويعرض الخطأ في السطر المقابل. نظرًا لأن Linux Bash هو مترجم ، فسيتم إرجاع السطر الذي يحتوي على الخطأ إليك في المحطة الطرفية وستتوقف عن فحص بقية الأوامر في البرنامج النصي. ومن ثم ، تحتاج إلى إصلاح الخطأ في سطر الأوامر المحدد والمتابعة إلى التالي لإصلاح خطأ الرمز غير المتوقع في البرنامج النصي shell. أسباب بناء الجملة خطأ بالقرب من الرمز المميز غير المتوقع في Linux Bash مذكور أدناه في هذا القسم على النحو التالي:

  • الترميز باستخدام تسلسلات الهروب- إذا كنت قد كتبت الرموز في البرمجة النصية Bash ، فقد تتسبب تسلسلات الهروب أو علامات الاقتباس في البرنامج النصي في حدوث أخطاء. يجب كتابة تسلسل الهروب وعلامات الاقتباس بالتنسيق الصحيح لإصلاح الخطأ.
  • بناء جملة غير صحيح في ملف الترميز - قد يعطي بناء الجملة في الكود خطأ في بناء الجملة إذا كان الأمر مكتوبًا في بناء جملة خاطئ مثل تغيير ترتيب الحلقات.
  • استخدام خاطئ للأمر - إذا كنت لا تستخدم الأمر بشكل صحيح مثل التعيين غير الصحيح للقيمة ، فقد يكون لديك خطأ في بناء الجملة.
  • نظام تشغيل غير متوافق في الأنظمة - إذا كان غلاف البرنامج النصي للترميز غير متوافق بين أنظمة Unix و DOS ، فقد يكون لديك خطأ غير متوقع.
  • المشكلات في البرنامج النصي bash shell - قد تؤدي المشكلات التي يتم تشغيلها في البرنامج النصي bash shell على الملف المنسوخ من نظام آخر إلى ظهور خطأ الرمز المميز غير المتوقع.

ضع في اعتبارك ملفًا يسمى example.sh تم إنشاؤه في برمجة Linux Bash باستخدام سطور الأوامر التالية لأغراض توضيحية. يحتوي ملف المثال على احتمالات أخطاء في بناء الجملة ويتضمن جميع الأوامر الممكنة التي يمكن استخدامها في البرنامج النصي shell.

 str = 'سطر الأوامر الأول لـ' (ملف مثال) 'في البرنامج النصي'
str = [(1،2)، (3،4)]
إذا [$ يوم == "mon"] إذن
صدى "مون"
آخر
صدى "لا مون"
فاي
لـ VARIABLE في {0..2} ؛ ومن بعد
هل صدى command1 ؛ صدى command2 ؛ أمر الصدى 3 ؛ صدى command4 ؛ فعله
احيانا صحيح؛ افعل إذا [$ day == "mon"] ؛ ثم صدى "mon" ؛ صدى آخر "ليس مون" ؛ فعله؛ فاي 

ملف المثال مع سطور الأوامر في لينكس باش

الطريقة الأولى: إصلاح الأخطاء يدويًا في كل سطر أوامر

الطريقة الأولى لإصلاح الأخطاء هي إصلاح الخطأ النحوي يدويًا في كل سطر أوامر في البرنامج النصي. تتم مناقشة خطوات حل أخطاء بناء الجملة بالقرب من الرمز المميز غير المتوقع في سطور الأوامر في هذا القسم. يتم وصف عملية إصلاح خطأ الرمز غير المتوقع في Terminal أدناه. قم بتشغيل الملف في Terminal عن طريق كتابة الأمر ./example.sh والضغط على مفتاح Enter .

example.sh ملف فتح الأمر. إصلاح خطأ نحوي Bash بالقرب من رمز غير متوقع

2. لاحظ الأسطر التي بها خطأ رمز غير متوقع في سطور الأوامر في النتيجة أدناه.

3. أصلح الخطأ في كل سطر باتباع الطرق الموضحة أدناه بشكل فردي وحفظ الملف.

4. قم بتشغيل الملف مرة أخرى بعد التغييرات وتحقق من حل خطأ بناء الجملة في الملف.

اقرأ أيضًا: كيفية تثبيت Linux Bash Shell على نظام التشغيل Windows 10

الخطوة الأولى: قراءة محتوى الملف

الخطوة الأولى لحل خطأ بناء الجملة في سطور الأوامر هي قراءة الملف في Terminal. إذا كانت هناك مشكلات في الملف ، فقد لا تتمكن من عرض الملف. الممارسة المعتادة لعرض الملف هي تشغيل الملف باستخدام الأمر ./example.sh ولكن لا يمكنك تعديل المحتوى في الملف. خيارات عرض محتوى الملف وتعديل سطور الأوامر لإصلاح الخطأ النحوي بالقرب من الرمز المميز غير المتوقع '(' تمت مناقشته أدناه.

الخيار 1: من خلال أمر CAT

الخيار الأول هو استخدام الأمر cat لعرض الملف في البرنامج النصي shell. اقرأ محتوى الملف الذي يحتوي على خطأ رمز غير متوقع باستخدام الأمر cat عن طريق كتابة الأمر cat –v example.sh في Terminal.

ملاحظة 1: يتم استخدام example.sh لأغراض توضيحية وتحتاج إلى كتابة اسم الملف الذي يحتوي على خطأ رمز غير متوقع.

ملاحظة 2: يتم استخدام الأمر cat –v لعرض جميع الأحرف غير المرئية التي من المحتمل أن تمثل حرف الإرجاع أو مسافة عدم الفاصل.

example.sh file open cat الأمر في محطة linux

الخيار 2: من خلال أمر VX

إذا لم تتمكن من استخدام الأمر cat ، فيمكنك محاولة استخدام الأمر vx لعرض الأوامر الموجودة في الملف وتعديلها باستخدام الخطوة الموضحة أدناه. اكتب الأمر sh –vx ./example.sh في Terminal لفتح الملف.

أمر sh vx example.sh. إصلاح خطأ نحوي Bash بالقرب من رمز غير متوقع

الخيار 3: من خلال الأمر od –a

3. إذا كان هناك عدد قليل من الأحرف غير المرئية في سطور الأوامر ، يمكنك استخدام الأمر od –a لعرض الملف. إذا كان محتوى الملف غير مرئي في ملف التعليمات البرمجية ، يمكنك محاولة قراءة الملف باستخدام الأمر od –a example.sh لتعديل الكود.

od a example.sh في محطة لينكس

الخطوة الثانية: إزالة فواصل أسطر Windows

إذا كانت هناك فواصل أسطر في Windows في البرنامج النصي shell ، فيمكنك استخدام أوامر وحدة التحكم لإزالة فواصل الأسطر ونسخ خطوط التعليمات البرمجية إلى ملف جديد لإصلاح الخطأ.

أدخل الأمر التالي في Terminal لحفظ المحتوى في الملف إلى ملف آخر يسمى correctedexample.sh لإزالة فواصل أسطر Windows في البرنامج النصي.

 tr –d '\ r' <example.sh> تصحيح 

أمر وحدة التحكم لإزالة فاصل سطر windows. إصلاح خطأ نحوي Bash بالقرب من رمز غير متوقع

الخطوة الثالثة: تعيين الأذونات للملف الذي تم إنشاؤه حديثًا

تحتاج إلى تعيين الإذن للملف الذي تم إنشاؤه حديثًا لتحرير الملف بحيث يمكن تنفيذ الملف في shell. اكتب الأمر chmod 755 تصحيحًا في الطرفية لتوفير الأذونات للملف وتشغيل الملف. يمكنك الآن عرض الملف الذي تم تصحيحه وإصلاح مشكلات التنسيق وإصلاح الخطأ النحوي بالقرب من الرمز المميز غير المتوقع '(' في الملف.

chmod 755 تصحيح الأمر example.sh لتعيين الأذونات في محطة لينكس

الخطوة الرابعة: تنسيق الكود في الملف

الخطوة الثانية هي تنسيق أسطر التعليمات البرمجية بشكل فردي وتغيير أسطر الأوامر يدويًا في الملف. خيارات تنسيق الملف لإصلاح الخطأ النحوي بالقرب من الرمز المميز غير المتوقع '(' تمت مناقشته أدناه في هذا القسم.

الخيار 1: استبدال علامات الاقتباس المفردة بعلامات الاقتباس المزدوجة

إذا كنت تستخدم علامات الاقتباس الفردية في سطور الأوامر ، فأنت بحاجة إلى تغيير الأمر عن طريق استبدال علامة الاقتباس المفردة بعلامات اقتباس مزدوجة لإصلاح الخطأ في بناء الجملة. في ملف example.sh ، قم بإزالة سطور التعليمات البرمجية التي تحتوي على " و " أو علامات الاقتباس المفردة في الأمر ، واستبدل علامات الاقتباس المفردة بعلامات الاقتباس المزدوجة أو " و " . هنا ، في ملف المثال ، تحتاج إلى تغيير الرمز كـ str = "أول سطر أوامر من" \ (ملف مثال) \ "في البرنامج النصي"

ملاحظة: علامات الاقتباس المزدوجة ضرورية لأوامر نوع المعلمة مثل str = “[(1،2)، (3،4)]” .

استبدل علامات الاقتباس المفردة بعلامات اقتباس مزدوجة في ملف example.sh bash

اقرأ أيضًا: 20 أفضل توزيعات Linux خفيفة الوزن لعام 2022

الخيار 2: إضافة $ إلى String Lines

إذا قمت بإضافة قيم سلسلة إلى البرنامج النصي ، فأنت بحاجة إلى إضافة $ إلى قيم السلسلة لإصلاح الخطأ في بناء الجملة في البرنامج النصي. أضف $ لأسطر الأوامر مع قيم السلسلة لإصلاح الخطأ غير المتوقع. هنا ، في ملف المثال ، قم بتغيير سطر الأوامر كـ ؛

 str = $ 'أول سطر أوامر من' \ (ملف مثال) \ 'في البرنامج النصي'

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

علامة الدولار في خطوط السلسلة. إصلاح خطأ نحوي Bash بالقرب من رمز غير متوقع

الخيار 3: تحويل علامات التبويب إلى مسافات

يجب أن تكون المسافات التي تركتها بين جملتين في الأمر مسافات بدلاً من علامات تبويب لإصلاح خطأ بناء الجملة في البرنامج النصي. إذا كنت تتلقى الخطأ في Cygwin ، فيمكنك محاولة تحويل علامات التبويب في الرموز إلى مسافات لإصلاح الخطأ. يتم إعطاء سطر الأوامر أدناه على النحو التالي ؛

 هل صدى command1 ؛ صدى command2 ؛ أمر الصدى 3 ؛ صدى command4 ؛ فعله 

علامات التبويب المستخدمة في الأمر do echo في ملف example.sh bash

يجب إعادة كتابة الأمر أعلاه كما هو موضح أدناه لإصلاح الخطأ.

 هل صدى command1 ؛ صدى command2 ؛ أمر الصدى 3 ؛ صدى command4 ؛ فعله

الخيار 4: استخدام Escape Characters

إذا كنت تستخدم حرف bash ، فمن المهم استخدام حرف escape مع حرف bash لإصلاح الخطأ النحوي. الأقواس أو () هي أحرف خاصة في الملف ، وبالتالي ، ستحتاج إلى استخدام حرف الهروب أو الشرطة المائلة للخلف في سطر الأوامر للهروب من الأحرف العادية لتنفيذ الأمر. إن str = "سطر الأوامر الأول من \" (ملف مثال) \ "في الأمر النصي" لن يعطي خطأ في Terminal حيث يتم استخدام حرف الهروب.

اقرأ أيضًا: كيف تنضم إلينا على نظام Linux

الخيار 5: استخدم مسافة بين الأحرف

يتعرف البرنامج النصي shell على الأوامر والعبارات الموجودة في البرنامج النصي من خلال القيم الافتراضية. تحتاج إلى التأكد من الاستخدام الصحيح للمسافة بين الأحرف حتى تتمكن القشرة من تحديد الأمر الوارد في البرنامج النصي. المسافة هي حرف يتم استخدامه للتمييز بين حرفين في سطر الأوامر. في الكود ، لا توجد مسافة بين if و [ ، مما يعطي خطأ الرمز غير المتوقع كما لو [ الأمر] لم يتم تحديده بواسطة shell. إذا تم تغيير الرمز إلى إذا [$ day == "mon"] ؛ ثم يمكن حل الخطأ كأمر نشرة shell إذا تم تحديده بواسطة shell.

الخيار 6: استخدام فاصل الأوامر للبيانات

يجب فصل الأوامر المختلفة في البرنامج النصي للقذيفة إلى عبارات حتى تتمكن المحطة الطرفية من تحديد الأوامر الفردية. تحتاج إلى استخدام فاصل الأوامر لإصلاح خطأ بناء الجملة في Linux Bash. يجب فصل العبارات الموجودة في الأمر بفاصل أوامر مثل الفاصلة المنقوطة أو a ؛ أو سطر جديد بالضغط على مفتاح Enter . على سبيل المثال ، الأمر الموجود في الكود إذا [$ day == “mon”] يجب تغييره كما لو [$ day == “mon”]؛ ثم لإصلاح الخطأ. نظرًا لاستخدام الفاصلة المنقوطة كفاصل أوامر بين الأحرف [ وبعد ذلك ، يمكنك إصلاح هذا الخطأ.

قم بتحرير الأمر example.sh في ملف bash. إصلاح خطأ نحوي Bash بالقرب من رمز غير متوقع

الخيار 7: إزالة العبارات الإضافية

في بعض الأحيان ، ربما تكون قد أضفت عبارات إضافية أو ربما خلطت الرموز في حالة وجود عدة حلقات متداخلة. تحتاج إلى إزالة العبارات الإضافية الموجودة في سطور الأوامر لإصلاح الخطأ النحوي بالقرب من الرمز المميز غير المتوقع '(' في Linux Bash. حلقات bash لـ… done أو والتركيبات الإنشائية إذا ... fi يجب أن تكون بالصيغة الصحيحة. ملف المثال يحتوي على بناء جملة خاطئ في الحلقة for يحتوي على المصطلح ثم الذي يتم استخدامه في عبارة if . سيؤدي تعديل الرمز على النحو التالي إلى إصلاح خطأ الرمز غير المتوقع. تكون العبارة إذن عبارة إضافية في التعليمات البرمجية وإزالة المصطلح سيصلح الخطأ.

 لـ VARIABLE في {0..2} ؛ هل صدى command1 ؛ صدى command2 ؛ أمر الصدى 3 ؛ صدى command4 ؛ فعله 

بتحرير الأمر for في ملف example.sh bash

الخيار 8: التأكد من صحة ترتيب إغلاق البيانات

إذا كنت تستخدم العديد من عبارات البناء المتداخلة أو الشرطية في البرنامج النصي shell ، فيجب عليك التأكد من إغلاق الحلقات بالترتيب الذي يتم فتحها به. يمكنك استخدام فاصل أسطر جديد لتجنب التعارض مع الحلقات. يجب أن يكون ترتيب إغلاق الحلقات المتداخلة والعبارات الشرطية صحيحًا ولا يجب تغييره. الحلقات في الكود بينما تكون صحيحة ؛ افعل إذا [$ day == "mon"] ؛ ثم صدى "mon" ؛ صدى آخر "ليس مون" ؛ فعله؛ يجب إغلاق fi بالترتيب الصحيح. يمكن أن يؤدي تغيير الكود كما هو موضح أدناه إلى إصلاح خطأ الرمز غير المتوقع حيث يتم تصحيح ترتيب إغلاق البيانات.

 احيانا صحيح؛ افعل إذا [$ day == "mon"] ؛ ثم صدى "mon" ؛ صدى آخر "ليس مون" ؛ فاي ؛ فعله 

تفعل أثناء القيادة. إصلاح خطأ نحوي Bash بالقرب من رمز غير متوقع

اقرأ أيضًا: ما هو مترجم سطر الأوامر؟

الطريقة 2: إعادة كتابة الرمز

إذا قمت بنسخ الكود ولصقه في ملف جديد على Terminal ، يمكنك محاولة إعادة كتابة الكود يدويًا لإصلاح الخطأ. يمكن إصلاح الأخطاء الموجودة في التعليمات البرمجية إذا كنت قد كتبت التعليمات البرمجية دون أي أخطاء في التنسيق في البرنامج النصي shell. هذا لأن الأحرف المخفية ومشكلات التنسيق في محرر النصوص مثل Microsoft Word ، ربما تكون قد استخدمت لنسخ ولصق الرمز ربما يكون قد أعطى الخطأ.

الطريقة الثالثة: استخدم الأمر Dos2unix.exe

إذا كنت تستخدم نظام تشغيل Unix ، فيمكنك كتابة رموز بحرف تغذية السطر \ n للانتقال إلى السطر التالي في الملف. ومع ذلك ، إذا كنت تستخدم نظام تشغيل Windows ، فأنت بحاجة إلى الانتقال إلى السطر التالي في التعليمات البرمجية باستخدام حرف إرجاع وتغذية السطر أو \ r \ n في الملف. إذا قمت بتنفيذ التعليمات البرمجية المكتوبة في نظام التشغيل Windows في Cygwin ، فقد تحصل على خطأ بناء الجملة بالقرب من الرمز المميز غير المتوقع '('.

لإصلاح الخطأ ، تحتاج إلى مسح أحرف الإرجاع باستخدام أداة سطر الأوامر DOS to Unix كمحول تنسيق ملف نصي. اكتب الأمر التالي كـ dos2unix.exe example.sh في Terminal ويمكنك تحويل الملف إلى تنسيق Unix.

الأمر dos2unix.exe example.sh. إصلاح خطأ نحوي Bash بالقرب من رمز غير متوقع

مُستَحسَن:

  • كيفية إنشاء حساب Telegram على Android
  • إصلاح خطأ وقت التشغيل C ++ على نظام التشغيل Windows 10
  • كيفية حذف حساب جيثب نهائيًا
  • أفضل 14 بطاقة رسومات لنظام Linux

ناقش المقال الطرق الأساسية لإصلاح خطأ بناء جملة Bash بالقرب من الرمز المميز غير المتوقع '(' في البرنامج النصي. إذا كنت تستخدم Linux Bash ، فيمكنك استخدام الطرق الموضحة في هذا القسم لإصلاح خطأ بنية Bash بالقرب من الرمز المميز غير المتوقع. إذا كنت لقد قرأت المقالة بأكملها ووجدت أن المحتوى مفيد ، يرجى إخبارنا باقتراحاتك واستفساراتك في قسم التعليقات.