কম্পিউটার

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

একটি স্ক্রিপ্ট একটি ফাইলে সংরক্ষিত কমান্ডের একটি তালিকা। টার্মিনালে সার্বক্ষণিক একের পর এক টাইপ করে কমান্ডের একটি ক্রম চালানোর পরিবর্তে, একজন সিস্টেম ব্যবহারকারী সেগুলিকে (কমান্ড) একটি ফাইলে সংরক্ষণ করতে পারে এবং বারবার কমান্ডগুলিকে পুনরায় চালানোর জন্য ফাইলটিকে বারবার আহ্বান করতে পারে। পি>

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

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

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

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

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

নিচে বিভিন্ন ধরনের স্ক্রিপ্টের "প্রথম লাইন" এর উদাহরণ দেওয়া হল:

#!/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 (noexec বা নো এক্সিকিউশনের জন্য সংক্ষিপ্ত) - শেলকে সমস্ত কমান্ড পড়ার নির্দেশ দেয়, তবে সেগুলি কার্যকর করে না। এই বিকল্পগুলি সিনট্যাক্স চেকিং মোড সক্রিয় করে।
  3. -x (xtrace বা এক্সিকিউশন ট্রেসের জন্য সংক্ষিপ্ত) - শেলকে সব কমান্ড এবং তাদের আর্গুমেন্ট টার্মিনালে প্রদর্শন করতে বলে যখন সেগুলি চালানো হয়। এই বিকল্পটি শেল ট্রেসিং মোড সক্ষম করে৷

1. শেল স্ক্রিপ্টের প্রথম লাইন পরিবর্তন করা

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

#!/bin/sh option(s)

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

2. ডিবাগিং বিকল্পের সাথে শেল আহ্বান করা হচ্ছে

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

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

যেমন:

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

3. সেট শেল বিল্ট-ইন কমান্ড ব্যবহার করে

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

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

$ set option 

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

$ set -option

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

$ set +option

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

$ set -

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

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

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


  1. কিভাবে অ্যান্ড্রয়েডে গ্রেস্কেল মোড সক্ষম করবেন

  2. কিভাবে উইন্ডোজ 10 এ কিওস্ক মোড সক্ষম করবেন

  3. ইউএসবি ডিবাগিং মোড এবং কীভাবে এটি অ্যান্ড্রয়েডে সক্ষম করবেন?

  4. কিভাবে উইন্ডোজ 11 এ হাইবারনেট মোড সক্ষম করবেন