Fish Shell:
ডিবাগার ব্যবহার করা
কিভাবে:
Fish এ অন্যান্য শেলের মতো বিল্ট-ইন ডিবাগার নেই, কিন্তু আপনি gdb এর মতো বাহ্যিক টুলস ব্যবহার করে কম্পাইল কৃত প্রোগ্রামস ডিবাগ করতে পারেন অথবা বিভিন্ন লেভেলে ডিবাগ আউটপুট সহ fish চালানোর জন্য fish -d ব্যবহার করতে পারেন। চলুন fish -d দিয়ে শুরু করি:
# ডিবাগ লেভেল ২ সহ ফিশ শেল চালান
fish -d2
# ফিশ শেলে, আসুন একটি সম্ভাব্য ত্রুটি সহ একটি সিম্পল ফাংশন টেস্ট করি
function test_func
set val 42
echo "মান হলো $val"
if test $val -eq 42
echo "সব ঠিক আছে।"
else
echo "কিছু একটা গণ্ডগোল আছে।"
end
end
# ফাংশনটি কল করুন এবং ডিবাগ আউটপুট লক্ষ্য করুন
test_funcআপনি ফাংশনের এক্সিকিউট হওয়ার আগে এবং পরে অতিরিক্ত ডিবাগ আউটপুট দেখতে পাবেন, যা সমস্যাগুলি চিহ্নিত করতে সাহায্য করবে।
গভীর ডুব
ঐতিহাসিকভাবে, Unix-এর মতো পরিবেশে ডিবাগিং C/C++ এর জন্য gdb অথবা Python এর জন্য pdb এর মতো বিশেষায়িত টুলসের একটি প্রদেশ রেখেছে। Fish এ, আপনি সাধারণত বাহ্যিক টুলসের উপর নির্ভরশীল হন অথবা ফাংশনগুলির বার্বল আউটপুটের মতো বিল্ট-ইন ফিচার এবং ভ্যারিয়েবল পরিবর্তনগুলি ট্র্যাক করার জন্য set -x এর মতো ফিচার ব্যবহার করতে পারেন।
কিছু লোক ডিবাগিং স্ক্রিপ্টের জন্য set -x এর মতো ফিচারের কারণে Bash এর মতো বিকল্প শেল বেছে নেয়। তবে, Fish এর ইউজার-ফ্রেন্ডলিনেস এবং ইন্টার্যাক্টিভিটির উপর গুরুত্ব দেওয়ায়, অনেক ক্ষেত্রে হার্ডকোর ডিবাগিংয়ের প্রয়োজন কম পড়ে।
বাস্তবায়নের ক্ষেত্রে, একটি স্ক্রিপ্ট ডিবাগ করার সময় সাধারণত তা বার্বল আউটপুট দিয়ে চালানো এবং ভ্যারিয়েবলগুলি কোথায় সেট, আনসেট, অথবা অপ্রত্যাশিতভাবে পরিবর্তিত হয় তা ট্র্যাক করা অন্তর্ভুক্ত হয়। Fish এর রঙিন আউটপুট এবং ইউজার-ফ্রেন্ডলি পদ্ধতির সাথে, আপনি প্রায়ই ডিবাগিংয়ের কঠিন দিকগুলি এড়িয়ে যেতে পারেন - কিন্তু যখন আপনি আটকে যাবেন, তখন মনে রাখবেন যে বাচনভঙ্গি এবং স্পষ্টতা আপনার সেরা টুলস।
দেখুন এছাড়াও
কোডে আপনি যখন ডুবে যাচ্ছেন, এখানে কিছু বিশ্বস্ত লাইফলাইন রয়েছে:
- ডিবাগিং উপর Fish ডকুমেন্টেশন: https://fishshell.com/docs/current/index.html#debugging
- GDB (GNU Debugger) অফিসিয়াল গাইড: https://www.gnu.org/software/gdb/documentation/
- স্ট্যাক ওভারফ্লো Fish ট্যাগ - বাস্তব জগতের ডিবাগিং কেস: https://stackoverflow.com/questions/tagged/fish
- অ্যাডভান্সড বাশ-স্ক্রিপ্টিং গাইড - ডিবাগিং পদ্ধতি তুলনা করার জন্য: https://tldp.org/LDP/abs/html/debugging.html