Bash:
שימוש במנפה שגיאות
איך לעשות:
Bash לא בא עם מנפה שגיאות מובנה כמו כמה שפות אחרות, אבל אפשר להשתמש בפקודות מובנות כמו set -x כדי לעקוב אחר מה שקורה. או, לשדרוג, קיים bashdb, מנפה שגיאות ראוי לעבור דרך הקוד שלך. הנה הצצה:
# שימוש ב-set -x לניפוי שגיאות
set -x
echo "מתחילים לנפות שגיאות"
my_var="שלום, עולם הניפוי!"
echo $my_var
set +x
# שימוש ב-bashdb
# התקנת bashdb עם מנהל החבילות שלך, למשל, apt, yum, brew.
# ניפוי של תסריט בשם my_script.sh:
bashdb my_script.shפלט כאשר מריצים עם set -x:
+ echo 'מתחילים לנפות שגיאות'
מתחילים לנפות שגיאות
+ my_var='שלום, עולם הניפוי!'
+ echo 'שלום, עולם הניפוי!'
שלום, עולם הניפוי!
+ set +xצלילה עמוקה
בהיסטוריה, ניפוי שגיאות בתסריטי Bash אומר להפוך את הקוד שלך למלא בהדפסות echo. אבל אז הגיע set -x, שנתן לנו הצצה לביצוע בזמן ריצה ללא הדפסות ידניות. ולמי שמרגיש צורך ביותר שליטה, המנפה שגיאות bashdb צץ, מושרה מהמנפה שגיאות ל-C/C++ gdb.
בנוגע לאלטרנטיבות, מעבר לפקודות set (-x, -v, -e), אפשרויות נוספות כוללות הפניית פלט לקובץ לניתוח או שימוש בכלים חיצוניים כמו ShellCheck לניתוח סטטי.
מבחינת היישום, set -x קלה; זו אפשרות של Bash מקורית שמדפיסה פקודות והארגומנטים שלהן כשהן מתבצעות. bashdb, מצד שני, מאפשר לעבור דרך הקוד, להגדיר נקודות עצירה, ולהעריך ביטויים - דברים שנותנים לך סיכוי ליחימה נגד באגים החמקמקים יותר.
ראה גם
- Bash Debugger Project: http://bashdb.sourceforge.net/
- “Pro Bash Programming” מאת Chris Johnson וJayant Varma לתסרוטים מתקדמים.
- ShellCheck לניתוח סטטי: https://www.shellcheck.net/