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/