লিনাক্সে কীভাবে শেল স্ক্রিপ্ট ডিবাগিং মোড সক্ষম করবেন


একটি স্ক্রিপ্ট হ'ল ফাইলটিতে সঞ্চিত কমান্ডের তালিকা list কমান্ডের ক্রমটি চালানোর পরিবর্তে টার্মিনালে সর্বদা একের পর এক টাইপ করে, একটি সিস্টেম ব্যবহারকারী তাদের সমস্ত (কমান্ড) একটি ফাইলে সংরক্ষণ করতে পারে এবং বারবার ফাইলটিকে কয়েকবার কমান্ডগুলি পুনরায় কার্যকর করতে অনুরোধ করে।

স্ক্রিপ্টিং শেখার সময় বা স্ক্রিপ্টগুলি লেখার প্রাথমিক পর্যায়ে, আমরা সাধারণত কয়েকটি লাইন কমান্ডের সাহায্যে ছোট বা ছোট স্ক্রিপ্টগুলি লেখার মাধ্যমে শুরু করি। এবং আমরা সাধারণত এগুলি স্ক্রিপ্টগুলি তাদের আউটপুটটি দেখে এবং আমাদের লক্ষ্য অনুযায়ী সেগুলি কাজ করে তা নিশ্চিত করে আর কিছুই না করে ডিবাগ করি।

যাইহোক, আমরা হাজার হাজার লাইনের কমান্ড সহ খুব দীর্ঘ এবং উন্নত স্ক্রিপ্টগুলি লিখতে শুরু করি, উদাহরণস্বরূপ স্ক্রিপ্টগুলি যা সিস্টেম সেটিংস সংশোধন করে, নেটওয়ার্কগুলিতে সমালোচনামূলক ব্যাকআপ সঞ্চালন করে এবং আরও অনেক কিছু, আমরা বুঝতে পারি যে কেবল কোনও স্ক্রিপ্টের আউটপুট অনুসন্ধান করা নয় স্ক্রিপ্টের মধ্যে বাগগুলি খুঁজে পেতে যথেষ্ট।

অতএব, লিনাক্স সিরিজে এই শেল স্ক্রিপ্ট ডিবাগিংয়ে, আমরা কীভাবে শেল স্ক্রিপ্ট ডিবাগিং সক্ষম করতে পারি, বিভিন্ন শেল স্ক্রিপ্ট ডিবাগিং মোডগুলি ব্যাখ্যা করতে এবং পরবর্তী সিরিজে কীভাবে সেগুলি ব্যবহার করব সে সম্পর্কে চলব।

কীভাবে স্ক্রিপ্ট শুরু করবেন

স্ক্রিপ্টটি তার প্রথম লাইনের দ্বারা অন্য ফাইলগুলি থেকে আলাদা করা যায়, এতে একটি #! থাকে (শে-ব্যাং - ফাইলের ধরণটি সংজ্ঞায়িত করে) এবং একটি পাথ নাম (দোভাষীর পাথ) যা ফাইলটিকে সিস্টেমকে অবহিত করে হ'ল আদেশগুলির সংকলন যা নির্দিষ্ট প্রোগ্রাম (দোভাষী) দ্বারা ব্যাখ্যা করা হবে।

নীচে বিভিন্ন ধরণের স্ক্রিপ্টগুলিতে "প্রথম লাইনগুলি" উদাহরণ রয়েছে:

#!/bin/sh          [For sh scripting]
#!/bin/bash        [For bash scripting] 
#!/usr/bin/perl    [For perl programming]
#!/bin/awk -f      [For awk scripting]   

দ্রষ্টব্য: কোনও স্ক্রিপ্টে কোনও অভ্যন্তরীণ শেল নির্দেশ ছাড়াই কেবলমাত্র স্ট্যান্ডার্ড সিস্টেম কমান্ডের একটি সেট থাকলে প্রথম লাইন বা #! বাদ দেওয়া যেতে পারে।

লিনাক্সে কীভাবে একটি শেল স্ক্রিপ্ট কার্যকর করা যায়

শেল স্ক্রিপ্ট আহ্বানের জন্য প্রচলিত বাক্য গঠন:

$ script_name  argument1 ... argumentN

আরেকটি সম্ভাব্য ফর্মটি শেলটি স্পষ্টভাবে নির্দিষ্ট করে বলা যা নিচের মতো স্ক্রিপ্টটি কার্যকর করবে:

$ shell script_name argument1 ... argumentN  

উদাহরণ স্বরূপ:

$ /bin/bash script_name argument1 ... argumentN     [For bash scripting]
$ /bin/ksh script_name argument1 ... argumentN      [For ksh scripting]
$ /bin/sh script_name argument1 ... argumentN       [For sh scripting]

স্ক্রিপ্টগুলির জন্য যেগুলিতে প্রথম লাইন হিসাবে #! নেই এবং কেবল নীচের মত বেসিক সিস্টেম কমান্ড রয়েছে:

#script containing standard system commands
cd /home/$USER
mkdir tmp
echo "tmp directory created under /home/$USER"

কেবল এটিকে সম্পাদনযোগ্য করে তুলুন এবং নীচে এটি চালান:

$ chmod +x  script_name
$ ./script_name 

শেল স্ক্রিপ্ট ডিবাগিং মোড সক্ষম করার পদ্ধতি

নীচে প্রাথমিক শেল স্ক্রিপ্ট ডিবাগিং বিকল্পগুলি রয়েছে:

  1. -v (ভার্বোজের জন্য সংক্ষিপ্ত) - শেলটি পড়ার সময় স্ক্রিপ্টের সমস্ত লাইন দেখানোর জন্য বলে, এটি ভার্বোজ মোডকে সক্রিয় করে।
  2. -n (নেক্সেক্স বা সংক্ষিপ্তসার জন্য সংক্ষিপ্ত) - শেল সমস্ত কমান্ড পড়ার নির্দেশ দেয়, তবে সেগুলি কার্যকর করে না। এই বিকল্পগুলি সিনট্যাক্স চেকিং মোডকে সক্রিয় করে।
  3. -x (xtrace বা এক্সিকিউশন ট্রেসের জন্য সংক্ষিপ্ত) - শেলকে জানানো হয় যে তারা কার্যকর করার সময় টার্মিনালে সমস্ত কমান্ড এবং তাদের আর্গুমেন্ট প্রদর্শন করে। এই বিকল্পটি শেল ট্রেসিং মোড সক্ষম করে।

প্রথম প্রক্রিয়াটি হ'ল নীচে শেল স্ক্রিপ্টের প্রথম লাইনটি পরিবর্তন করে, এটি পুরো স্ক্রিপ্টটির ডিবাগিং সক্ষম করবে।

#!/bin/sh option(s)

উপরের ফর্মটিতে বিকল্পটি উপরের ডিবাগিং বিকল্পগুলির এক বা মিশ্রণ হতে পারে।

দ্বিতীয়টি হ'ল ডিবাগিং বিকল্পগুলির সাথে শেলটি নিম্নরূপে চাওয়া, এই পদ্ধতিটি পুরো স্ক্রিপ্টটির ডিবাগিংও চালু করবে।

$ shell option(s) script_name argument1 ... argumentN

উদাহরণ স্বরূপ:

$ /bin/bash option(s) script_name argument1 ... argumentN   

তৃতীয় পদ্ধতিটি হ'ল শেল স্ক্রিপ্টের কোনও প্রদত্ত বিভাগ যেমন কোনও ফাংশন ডিবাগ করার জন্য সেট বিল্ট-ইন কমান্ড ব্যবহার করে। এই প্রক্রিয়াটি গুরুত্বপূর্ণ, কারণ এটি আমাদের শেল স্ক্রিপ্টের যে কোনও বিভাগে ডিবাগিং সক্রিয় করতে দেয়।

নীচের ফর্মটিতে সেট কমান্ড ব্যবহার করে আমরা ডিবাগিং মোড চালু করতে পারি, যেখানে ডিবাগিং বিকল্পগুলির মধ্যে বিকল্প রয়েছে।

$ set option 

ডিবাগিং মোড সক্ষম করতে, ব্যবহার করুন:

$ set -option

ডিবাগিং মোড অক্ষম করতে, ব্যবহার করুন:

$ set +option

তদুপরি, আমরা যদি শেল স্ক্রিপ্টের বিভিন্ন বিভাগে বেশ কয়েকটি ডিবাগিং মোড সক্ষম করে থাকি তবে আমরা সেগুলির সবগুলিকে একবারে অক্ষম করতে পারি:

$ set -

এটি এখনই শেল স্ক্রিপ্ট ডিবাগিং মোড সক্ষম করে। যেমনটি আমরা দেখেছি, আমরা হয় পুরো শেল স্ক্রিপ্ট বা স্ক্রিপ্টের একটি বিশেষ বিভাগটি ডিবাগ করতে পারি।

এই সিরিজের পরবর্তী দুটি পর্বে, আমরা উদাহরণস্বরূপ ভার্বোস, সিনট্যাক্স চেকিং এবং শেল ট্রেসিং ডিবাগিং মোডগুলি ব্যাখ্যা করার জন্য কীভাবে শেল স্ক্রিপ্ট ডিবাগিং বিকল্পগুলি ব্যবহার করব তা কভার করব।

গুরুত্বপূর্ণভাবে, এই গাইড সম্পর্কে কোনও প্রশ্ন জিজ্ঞাসা করতে ভুলবেন না বা সম্ভবত নীচের মন্তব্য বিভাগের মাধ্যমে আমাদের প্রতিক্রিয়া জানান। ততক্ষণে, টেকমিন্টের সাথে সংযুক্ত থাকুন।