Bash:
डीबगर का उपयोग

कैसे करें:

Bash में कुछ अन्य भाषाओं की तरह एक बिल्ट-इन डिबगर नहीं आता है, लेकिन आप set -x जैसे बिल्ट-इन कमांड का उपयोग करके देख सकते हैं कि क्या हो रहा है। या, एक उन्नति के लिए, bashdb है, एक सही डिबगर आपके कोड को चरण दर चरण चलाने के लिए। यहाँ एक झलक है:

# set -x का उपयोग करके डिबग करना
set -x
echo "डिबगिंग शुरू"
my_var="नमस्ते, डिबगिंग दुनिया!"
echo $my_var
set +x

# bashdb का उपयोग करना
# अपने पैकेज मैनेजर के साथ bashdb स्थापित करें, उदाहरण के लिए, apt, yum, brew.
# मेरी_स्क्रिप्ट.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) के अलावा, अन्य विकल्प में विश्लेषण के लिए आउटपुट को एक फाइल में रीडायरेक्ट करना या शेलचेक जैसे बाहरी उपकरणों का उपयोग करना शामिल हैं।

कार्यान्वयन की दृष्टि से, set -x आसान है; यह एक मूल Bash विकल्प है जो कमांडों और उनके आर्ग्यूमेंट्स को प्रिंट करता है जैसे ही वे निष्पादित होते हैं। दूसरी ओर, bashdb कोड के माध्यम से चरणबद्ध रूप से चलने, ब्रेकपॉइंट्स सेट करने और अभिव्यक्तियों का मूल्यांकन करने - वह सब कुछ अनुमति देता है जो आपको अधिक चालाक बग्स के खिलाफ एक लड़ाई का मौका देता है।

यह भी देखें

  • बैश डिबगर प्रोजेक्ट: http://bashdb.sourceforge.net/
  • उन्नत स्क्रिप्टिंग के लिए क्रिस जॉनसन और जयंत वर्मा द्वारा “प्रो बैश प्रोग्रामिंग”।
  • स्थिर विश्लेषण के लिए शैलचेक: https://www.shellcheck.net/