חסר ציטוטים
אם נערוך את הסקריפט שלנו ונסיר את הציטוט העוקב מהטיעון שאחרי הראשון
פקודה echo:
#! / bin / bash
# בעיה: סקריפט להדגמת שגיאות נפוצות מספר=1
if [$number = 1]; לאחר מכן
echo "המספר שווה ל-1.
אחר
echo "המספר אינו שווה ל-1."
fi
#! / bin / bash
# בעיה: סקריפט להדגמת שגיאות נפוצות מספר=1
if [$number = 1]; לאחר מכן
echo "המספר שווה ל-1.
אחר
echo "המספר אינו שווה ל-1."
fi
צפו במה שקורה:
[me@linuxbox ~]$ צרה
/home/me/bin/trouble: שורה 10: EOF בלתי צפוי בזמן חיפוש תואם `"'
/home/me/bin/trouble: שורה 13: שגיאת תחביר: סוף לא צפוי של הקובץ
[me@linuxbox ~]$ צרה
/home/me/bin/trouble: שורה 10: EOF בלתי צפוי בזמן חיפוש תואם `"'
/home/me/bin/trouble: שורה 13: שגיאת תחביר: סוף לא צפוי של הקובץ
זה יוצר שתי שגיאות. מעניין לציין שמספרי השורות המדווחים על ידי הודעות השגיאה אינם היכן שהציטוט החסר הוסר, אלא הרבה יותר מאוחר בתוכנית. אם נעקוב אחר התוכנית לאחר הציטוט החסר, נוכל לראות מדוע. לחבוט ימשיך לחפש את הציטוט הסוגר עד שימצא אחד, מה שכן, מיד אחרי השני הד פקודה. אחרי כן, לחבוט הופך מבולבל מאוד. התחביר של הבא if הפקודה שבורה בגלל ה fi הצהרה נמצאת כעת בתוך מחרוזת מצוטטת (אך פתוחה).
בסקריפטים ארוכים, שגיאה מסוג זה יכולה להיות די קשה למצוא. שימוש בעורך עם הדגשת תחביר יעזור שכן, ברוב המקרים, הוא יציג מחרוזות במירכאות באופן ייחודי מסוגים אחרים של תחביר מעטפת. אם גרסה מלאה של מֶרֶץ מותקן, ניתן להפעיל הדגשת תחביר על ידי הזנת הפקודה:
: תחביר מופעל
: תחביר מופעל