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

গভীর ডুব

ঐতিহাসিকভাবে, ব্যাশ স্ক্রিপ্ট ডিবাগ করার মানে ছিল আপনার কোডে echo স্টেটমেন্ট দিয়ে ভরাট করা। কিন্তু তারপর set -x এসেছে, যা আমাদের রানটাইম এক্সিকিউশনের একটি ঝলক দিয়েছে ম্যানুয়াল প্রিন্টআউট ছাড়াই। এবং যারা আরও নিয়ন্ত্রণ চান, তাদের জন্য bashdb ডিবাগার এসেছিল, যা C/C++ এর জন্য gdb ডিবাগার থেকে অনুপ্রেরণা নিয়েছে।

বিকল্প হিসেবে, set কমান্ড (-x, -v, -e) ছাড়াও, অন্যান্য বিকল্প রয়েছে যেমন বিশ্লেষণের জন্য ফাইলে আউটপুট রিডাইরেক্ট করা বা ShellCheck এর মতো বাহ্যিক টুলস ব্যবহার করা স্ট্যাটিক বিশ্লেষণের জন্য।

বাস্তবায়নের দিক থেকে, set -x ব্যবহার করা সহজ; এটি একটি নেটিভ ব্যাশ অপশন যা এক্সিকিউট করা হওয়া কমান্ড এবং তাদের আর্গুমেন্ট প্রিন্ট করে। অন্যদিকে, bashdb আপনাকে কোডে ধাপে ধাপে অগ্রসর হতে, ব্রেকপয়েন্ট সেট করতে এবং এক্সপ্রেশন মূল্যায়নের মতো কাজ করতে দেয় - যা আপনাকে আরও অধরা বাগের বিরুদ্ধে একটি লড়াইয়ের সুযোগ দেয়।

দেখুন

  • ব্যাশ ডিবাগার প্রকল্প: http://bashdb.sourceforge.net/
  • উন্নত স্ক্রিপ্টিং জন্য “প্রো ব্যাশ প্রোগ্রামিং” চ্রিস জনসন এবং জয়ন্ত ভার্মা দ্বারা।
  • স্ট্যাটিক বিশ্লেষণের জন্য শেলচেক: https://www.shellcheck.net/