खोज…


"-X" के साथ एक बैश स्क्रिप्ट को डीबग करना

निष्पादित लाइनों के डिबग आउटपुट को सक्षम करने के लिए "-x" का उपयोग करें। इसे पूरे सत्र या स्क्रिप्ट पर चलाया जा सकता है, या किसी स्क्रिप्ट के भीतर प्रोग्रामेटिक रूप से सक्षम किया जा सकता है।

डीबग आउटपुट सक्षम के साथ स्क्रिप्ट चलाएँ:

$ bash -x myscript.sh

या

$ bash --debug myscript.sh

बैश स्क्रिप्ट के भीतर डिबगिंग चालू करें। वैकल्पिक रूप से इसे वापस चालू किया जा सकता है, हालांकि स्क्रिप्ट से बाहर निकलने पर डिबग आउटपुट स्वचालित रूप से रीसेट हो जाता है।

#!/bin/bash
set -x   # Enable debugging
# some code here
set +x   # Disable debugging output. 

"-N" के साथ एक स्क्रिप्ट के सिंटैक्स की जाँच करना

-N ध्वज आपको इसे निष्पादित करने के बिना किसी स्क्रिप्ट के वाक्यविन्यास की जांच करने में सक्षम बनाता है:

~> $ bash -n testscript.sh
testscript.sh: line 128: unexpected EOF while looking for matching `"'
testscript.sh: line 130: syntax error: unexpected end of file

डिबगिंग वेज बैशब

Bashdb एक उपयोगिता है जो gdb के समान है, इसमें आप एक पंक्ति में या किसी फ़ंक्शन में सेट ब्रेकपॉइंट जैसी चीजें कर सकते हैं, चर की प्रिंट सामग्री, आप स्क्रिप्ट निष्पादन और अधिक को पुनः आरंभ कर सकते हैं।

आप सामान्य रूप से अपने पैकेज मैनेजर के माध्यम से इसे स्थापित कर सकते हैं, उदाहरण के लिए फेडोरा पर:

sudo dnf install bashdb 

या होमपेज से प्राप्त करें। तब आप इसे अपनी स्क्रिप्ट के साथ पैरामेटर के रूप में चला सकते हैं:

bashdb <YOUR SCRIPT>

आरंभ करने के लिए यहां कुछ आदेश दिए गए हैं:

l - show local lines, press l again to scroll down
s - step to next line 
print $VAR - echo out content of variable 
restart - reruns bashscript, it re-loads it prior to execution.
eval - evaluate some custom command, ex: eval echo hi

b <line num> set breakpoint on some line 
c - continue till some breakpoint 
i b - info on break points 
d <line #> - delete breakpoint at line #

shell - launch a sub-shell in the middle of execution, this is handy for manipulating variables

अधिक जानकारी के लिए, मैं मैनुअल से परामर्श करने की सलाह देता हूं: http://www.rodericksmith.plus.com/outlines/manuals/bashdbObline.html

मुखपृष्ठ भी देखें:
http://bashdb.sourceforge.net/



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow