এই সিরিজের প্রথম প্রবন্ধে, আপনি একটি খুব ছোট, এক-লাইন ব্যাশ স্ক্রিপ্ট তৈরি করেছেন এবং শেল স্ক্রিপ্ট তৈরি করার কারণগুলি অনুসন্ধান করেছেন এবং কেন তারা সংকলিত প্রোগ্রামগুলির পরিবর্তে সিস্টেম অ্যাডমিনিস্ট্রেটরের জন্য সবচেয়ে কার্যকর বিকল্প৷
এই দ্বিতীয় নিবন্ধে, আপনি একটি ব্যাশ স্ক্রিপ্ট টেমপ্লেট তৈরি করতে শুরু করবেন যা অন্যান্য ব্যাশ স্ক্রিপ্টগুলির জন্য একটি সূচনা পয়েন্ট হিসাবে ব্যবহার করা যেতে পারে। এই টেমপ্লেটটিতে শেষ পর্যন্ত একটি সহায়তা সুবিধা, একটি লাইসেন্সিং বিবৃতি, বেশ কয়েকটি সাধারণ ফাংশন, এবং সেই বিকল্পগুলির সাথে মোকাবিলা করার জন্য কিছু যুক্তি এবং এই টেমপ্লেটের উপর ভিত্তি করে স্ক্রিপ্টগুলির জন্য প্রয়োজন হতে পারে এমন অন্য কিছু থাকবে৷
কেন একটি টেমপ্লেট তৈরি করবেন?
সাধারণভাবে অটোমেশনের মতো, একটি টেমপ্লেট তৈরি করার পিছনে ধারণাটি হল "অলস সিসাডমিন"। একটি টেমপ্লেটে মৌলিক উপাদান রয়েছে যা আপনি আপনার সমস্ত স্ক্রিপ্টে চান৷ প্রতিটি নতুন স্ক্রিপ্টে সেই উপাদানগুলি যোগ করার তুলনায় এটি সময় বাঁচায় এবং একটি নতুন স্ক্রিপ্ট শুরু করা সহজ করে তোলে৷
যদিও এটি একটি ফাইলে কয়েকটি কমান্ড-লাইন ব্যাশ স্টেটমেন্ট একসাথে নিক্ষেপ করা এবং এটিকে কার্যকর করা লোভনীয় হতে পারে, এটি দীর্ঘমেয়াদে বিপরীত হতে পারে। একটি হেল্প সুবিধা এবং কমান্ড-লাইন বিকল্পগুলি গ্রহণ করার ক্ষমতা সহ একটি সুলিখিত এবং ভালভাবে মন্তব্য করা ব্যাশ প্রোগ্রাম sysadmins যারা প্রোগ্রামটি বজায় রাখে তাদের জন্য একটি ভাল সূচনা পয়েন্ট প্রদান করে, যার মধ্যে সেই প্রোগ্রামগুলি রয়েছে যা আপনি লিখুন এবং বজায় রাখুন।
প্রয়োজনীয়তা
আপনার করা প্রতিটি প্রকল্পের জন্য আপনার সর্বদা প্রয়োজনীয়তার একটি সেট তৈরি করা উচিত। এটিতে স্ক্রিপ্টগুলি অন্তর্ভুক্ত রয়েছে, এমনকি যদি এটি একটি সাধারণ তালিকা হয় যার শুধুমাত্র দুটি বা তিনটি আইটেম থাকে। আমি এমন অনেক প্রকল্পের সাথে জড়িত ছিলাম যেগুলি হয় সম্পূর্ণরূপে ব্যর্থ হয়েছে বা গ্রাহকের চাহিদা মেটাতে ব্যর্থ হয়েছে, সাধারণত প্রয়োজনীয়তার বিবৃতি না থাকার কারণে বা খারাপভাবে লেখার কারণে৷
এই ব্যাশ টেমপ্লেটের প্রয়োজনীয়তাগুলি বেশ সহজ:
- একটি টেমপ্লেট তৈরি করুন যা ভবিষ্যতে ব্যাশ প্রোগ্রামিং প্রকল্পগুলির জন্য সূচনা পয়েন্ট হিসাবে ব্যবহার করা যেতে পারে৷
- টেমপ্লেটটিকে মানক ব্যাশ প্রোগ্রামিং অনুশীলন অনুসরণ করা উচিত।
- এতে অবশ্যই অন্তর্ভুক্ত থাকতে হবে:
- একটি শিরোনাম বিভাগ যা প্রোগ্রামের ফাংশন এবং একটি চেঞ্জলগ বর্ণনা করতে ব্যবহার করা যেতে পারে
- একটি লাইসেন্সিং বিবৃতি
- ফাংশনের জন্য একটি বিভাগ
- একটি সাহায্য ফাংশন
- প্রোগ্রাম ব্যবহারকারী রুট কিনা তা পরীক্ষা করার জন্য একটি ফাংশন
- কমান্ড-লাইন বিকল্পগুলি মূল্যায়নের জন্য একটি পদ্ধতি
মূল কাঠামো
একটি মৌলিক ব্যাশ স্ক্রিপ্টের তিনটি বিভাগ রয়েছে। ব্যাশের কাছে বিভাগগুলি বর্ণনা করার কোনও উপায় নেই, তবে বিভাগগুলির মধ্যে সীমানা অন্তর্নিহিত৷
- সমস্ত স্ক্রিপ্ট শেবাং দিয়ে শুরু হতে হবে (#! ), এবং এটি অবশ্যই যেকোনো ব্যাশ প্রোগ্রামের প্রথম লাইন হতে হবে।
- ফাংশন বিভাগটি অবশ্যই শেবাং এর পরে এবং প্রোগ্রামের মূল অংশের আগে শুরু হতে হবে। আমার সমস্ত কিছু নথিভুক্ত করার প্রয়োজনের অংশ হিসাবে, আমি প্রতিটি ফাংশনের আগে একটি মন্তব্য রাখি যা করার উদ্দেশ্যে একটি সংক্ষিপ্ত বিবরণ দিয়ে। আমি আরও বিস্তারিত করার জন্য ফাংশনের ভিতরে মন্তব্যগুলিও অন্তর্ভুক্ত করি। সংক্ষিপ্ত, সাধারণ প্রোগ্রামগুলির ফাংশনের প্রয়োজন নাও হতে পারে৷
- প্রোগ্রামের মূল অংশটি ফাংশন বিভাগের পরে আসে। এটি একটি একক ব্যাশ বিবৃতি বা কোডের হাজার হাজার লাইন হতে পারে। আমার একটি প্রোগ্রামে 200 লাইনের একটু বেশি কোড রয়েছে, মন্তব্য গণনা করা হয় না। একই প্রোগ্রামে 600 টিরও বেশি মন্তব্য লাইন রয়েছে৷
যেকোন ব্যাশ প্রোগ্রামের কাঠামোতে মাত্র তিনটি বিভাগ আছে।
প্রধান মন্তব্য
আমি সবসময় বিভিন্ন কারণে এর চেয়ে বেশি যোগ করি। প্রথমত, আমি শিবাং এর পরপরই মন্তব্যের কয়েকটি বিভাগ যোগ করি। এই মন্তব্য বিভাগগুলি ঐচ্ছিক, কিন্তু আমি সেগুলিকে খুব সহায়ক বলে মনে করি৷
৷প্রথম মন্তব্য বিভাগ হল প্রোগ্রামের নাম এবং বিবরণ এবং একটি পরিবর্তনের ইতিহাস। আমি আইবিএম-এ কাজ করার সময় এই বিন্যাসটি শিখেছি, এবং এটি প্রোগ্রামের দীর্ঘমেয়াদী উন্নয়ন এবং এতে প্রয়োগ করা যেকোনো সংশোধনের নথিভুক্ত করার একটি পদ্ধতি প্রদান করে। এটি আপনার প্রোগ্রাম ডকুমেন্টিং একটি গুরুত্বপূর্ণ শুরু.
দ্বিতীয় মন্তব্য বিভাগ একটি কপিরাইট এবং লাইসেন্স বিবৃতি. আমি GPLv2 ব্যবহার করি এবং এটি GPLv2 এর অধীনে লাইসেন্সকৃত প্রোগ্রামগুলির জন্য একটি আদর্শ বিবৃতি বলে মনে হয়। আপনি যদি একটি ভিন্ন ওপেন সোর্স লাইসেন্স ব্যবহার করেন, তাহলে সেটা ঠিক আছে, কিন্তু আমি লাইসেন্সিং সম্পর্কে যেকোনো সম্ভাব্য বিভ্রান্তি দূর করতে কোডে একটি স্পষ্ট বিবৃতি যোগ করার পরামর্শ দিচ্ছি। স্কট পিটারসনের নিবন্ধ সোর্স কোড হল লাইসেন্স এর পেছনের যুক্তি ব্যাখ্যা করতে সাহায্য করে।
তাই এখন স্ক্রিপ্ট এই মত দেখায়:
#!/bin/bash
################################################################################
# scriptTemplate #
# #
# Use this template as the beginning of a new program. Place a short #
# description of the script here. #
# #
# Change History #
# 11/11/2019 David Both Original code. This is a template for creating #
# new Bash shell scripts. #
# Add new history entries as needed. #
# #
# #
################################################################################
################################################################################
################################################################################
# #
# Copyright (C) 2007, 2019 David Both #
# [email protected] #
# #
# This program is free software; you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation; either version 2 of the License, or #
# (at your option) any later version. #
# #
# This program is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY; without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
# #
# You should have received a copy of the GNU General Public License #
# along with this program; if not, write to the Free Software #
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #
# #
################################################################################
################################################################################
################################################################################
echo "hello world!"
এটি এখনও প্রত্যাশিত হিসাবে কাজ করে তা যাচাই করতে সংশোধিত প্রোগ্রামটি চালান৷
পরীক্ষা সম্পর্কে
পরীক্ষার বিষয়ে কথা বলার এখনই ভালো সময়৷
৷"সর্বদা আরও একটি বাগ থাকে।"
— লুবারস্কির সাইবারনেটিক কীটতত্ত্বের আইন
লুবারস্কি - যেই হোক না কেন - সঠিক। আপনি কখনই আপনার কোডে সমস্ত বাগ খুঁজে পাবেন না। আমি যে প্রতিটি বাগ খুঁজে পাই, তার জন্য সবসময় মনে হয় অন্য একটি আছে যা সাধারণত খুব অসঙ্গত সময়ে ক্রপ হয়।
পরীক্ষা শুধু প্রোগ্রাম সম্পর্কে নয়। এটি যাচাইকরণের বিষয়েও যে সমস্যাগুলি-হার্ডওয়্যার, সফ্টওয়্যার, বা ব্যবহারকারীরা জিনিসগুলি ভাঙার জন্য আপাতদৃষ্টিতে অন্তহীন উপায়গুলি খুঁজে পেতে পারে- যেগুলি আসলে সমাধান করা উচিত বলে মনে করা হয়৷ ঠিক যেমন গুরুত্বপূর্ণ, পরীক্ষা করা হল কোডটি ব্যবহার করা সহজ এবং ইন্টারফেসটি ব্যবহারকারীর কাছে বোধগম্য হয় তা নিশ্চিত করা।
শেল স্ক্রিপ্ট লেখা এবং পরীক্ষা করার সময় একটি সু-সংজ্ঞায়িত প্রক্রিয়া অনুসরণ করা ধারাবাহিক এবং উচ্চ-মানের ফলাফলে অবদান রাখতে পারে। আমার প্রক্রিয়া সহজ:
- একটি সাধারণ পরীক্ষার পরিকল্পনা তৈরি করুন৷ ৷
- উন্নয়নের শুরুতেই পরীক্ষা শুরু করুন।
- কোড সম্পূর্ণ হলে একটি চূড়ান্ত পরীক্ষা করুন।
- উৎপাদনে যান এবং আরও পরীক্ষা করুন।
পরীক্ষার পরিকল্পনা
পরীক্ষার পরিকল্পনার জন্য অনেকগুলি বিভিন্ন ফর্ম্যাট রয়েছে। আমি পুরো পরিসরের সাথে কাজ করেছি - আমার মাথায় এটি থাকা থেকে; কাগজের শীটে লেখা কয়েকটি নোটে; এবং সমস্ত উপায়ে একটি জটিল ফর্মের সেট যাতে প্রতিটি পরীক্ষার সম্পূর্ণ বিবরণের প্রয়োজন হয়, এটি কোন কার্যকরী কোড পরীক্ষা করবে, পরীক্ষাটি কী সম্পন্ন করবে এবং ইনপুট এবং ফলাফলগুলি কী হওয়া উচিত।
একজন সিসাডমিন হিসাবে কথা বলতে যিনি একজন পরীক্ষক ছিলেন (কিন্তু এখন নন), আমি মধ্যম স্থল নেওয়ার চেষ্টা করি। অন্তত একটি সংক্ষিপ্ত লিখিত পরীক্ষার পরিকল্পনা থাকা একটি পরীক্ষা থেকে পরবর্তীতে ধারাবাহিকতা নিশ্চিত করবে। আপনার কতটা বিশদ প্রয়োজন তা নির্ভর করে আপনার বিকাশ এবং পরীক্ষার ফাংশনগুলি কতটা আনুষ্ঠানিক তার উপর৷
আমি Google ব্যবহার করে যে নমুনা পরীক্ষা পরিকল্পনা নথিগুলি পেয়েছি তা জটিল এবং খুব আনুষ্ঠানিক বিকাশ এবং পরীক্ষা প্রক্রিয়া সহ বড় প্রতিষ্ঠানের জন্য উদ্দিষ্ট। যদিও এই পরীক্ষার পরিকল্পনাগুলি তাদের চাকরির শিরোনামে "পরীক্ষা" সহ লোকেদের জন্য ভাল হবে, তবে তারা সিসাডমিনদের আরও বিশৃঙ্খল এবং সময়-নির্ভর কাজের পরিস্থিতিতে ভালভাবে প্রয়োগ করে না। কাজের অন্যান্য দিকগুলির মতো, সিসাডমিনদের সৃজনশীল হতে হবে। তাই আপনার পরীক্ষার পরিকল্পনা সহ বিবেচনা করার জন্য এখানে একটি ছোট তালিকা রয়েছে। আপনার প্রয়োজন অনুসারে এটি পরিবর্তন করুন:
- পরীক্ষিত সফ্টওয়্যারটির নাম এবং একটি সংক্ষিপ্ত বিবরণ
- পরীক্ষিত সফ্টওয়্যার বৈশিষ্ট্যগুলির একটি বিবরণ
- প্রতিটি পরীক্ষার শুরুর শর্তগুলি
- প্রতিটি পরীক্ষার জন্য অনুসরণ করার ফাংশনগুলি
- প্রতিটি পরীক্ষার জন্য পছন্দসই ফলাফলের একটি বিবরণ
- নেতিবাচক ফলাফলের জন্য পরীক্ষা করার জন্য ডিজাইন করা নির্দিষ্ট পরীক্ষাগুলি
- প্রোগ্রামটি কিভাবে অপ্রত্যাশিত ইনপুট পরিচালনা করে তার জন্য পরীক্ষা করে
- প্রতিটি পরীক্ষার জন্য পাস বা ফেল কিসের একটি স্পষ্ট বর্ণনা
- অস্পষ্ট পরীক্ষা, যা নীচে বর্ণিত হয়েছে
এই তালিকাটি আপনাকে আপনার পরীক্ষার পরিকল্পনা তৈরি করার জন্য কিছু ধারণা দিতে হবে। বেশিরভাগ সিসাডমিনদের উচিত এটি সহজ এবং মোটামুটি অনানুষ্ঠানিক রাখা।
প্রথম দিকে পরীক্ষা করুন—প্রায়শই পরীক্ষা করুন
আমি সর্বদা আমার শেল স্ক্রিপ্টগুলি পরীক্ষা করা শুরু করি যত তাড়াতাড়ি আমি এক্সিকিউটেবল প্রথম অংশটি সম্পূর্ণ করি। আমি একটি সংক্ষিপ্ত কমান্ড-লাইন প্রোগ্রাম লিখছি বা একটি এক্সিকিউটেবল ফাইল যা স্ক্রিপ্ট লিখছি তা সত্য৷
আমি সাধারণত শেল স্ক্রিপ্ট টেমপ্লেট দিয়ে নতুন প্রোগ্রাম তৈরি করা শুরু করি। আমি হেল্প ফাংশনের জন্য কোড লিখি এবং এটি পরীক্ষা করি। এটি সাধারণত প্রক্রিয়াটির একটি তুচ্ছ অংশ, তবে এটি আমাকে শুরু করতে সাহায্য করে এবং নিশ্চিত করে যে টেমপ্লেটের জিনিসগুলি শুরুতে সঠিকভাবে কাজ করছে৷ এই মুহুর্তে, স্ক্রিপ্টের টেমপ্লেট অংশগুলির সাথে সমস্যাগুলি সমাধান করা বা স্ট্যান্ডার্ড টেমপ্লেট নয় এমন চাহিদা মেটাতে এটি সংশোধন করা সহজ৷
একবার টেমপ্লেট এবং হেল্প ফাংশন কাজ করে, আমি প্রোগ্রামের স্পেসিফিকেশন পূরণের জন্য প্রয়োজনীয় প্রোগ্রামিং ধাপগুলি নথিভুক্ত করার জন্য মন্তব্য যোগ করে প্রোগ্রামের বডি তৈরির দিকে এগিয়ে যাই। এখন আমি প্রতিটি মন্তব্যে বর্ণিত প্রয়োজনীয়তাগুলি পূরণ করার জন্য কোড যোগ করতে শুরু করি। এই কোডের জন্য সম্ভবত টেমপ্লেটের সেই বিভাগে আরম্ভ করা ভেরিয়েবল যোগ করার প্রয়োজন হবে—যা এখন একটি শেল স্ক্রিপ্ট হয়ে উঠছে।
এখানেই পরীক্ষা কেবলমাত্র ডেটা প্রবেশ করানো এবং ফলাফল যাচাই করার চেয়ে বেশি কিছু। এটা একটু বাড়তি কাজ লাগে. কখনও কখনও আমি একটি কমান্ড যোগ করি যা কেবলমাত্র আমার লেখা কোডের মধ্যবর্তী ফলাফল প্রিন্ট করে এবং সেটি যাচাই করে। আরও জটিল স্ক্রিপ্টের জন্য, আমি একটি -t যোগ করি "পরীক্ষা মোড" এর বিকল্প। এই ক্ষেত্রে, অভ্যন্তরীণ পরীক্ষার কোড তখনই কার্যকর হয় যখন -t বিকল্পটি কমান্ড লাইনে প্রবেশ করানো হয়।
চূড়ান্ত পরীক্ষা
কোডটি সম্পূর্ণ হওয়ার পরে, আমি নির্দিষ্ট আউটপুট তৈরি করতে পরিচিত ইনপুট ব্যবহার করে সমস্ত বৈশিষ্ট্য এবং ফাংশনগুলির একটি সম্পূর্ণ পরীক্ষা করতে ফিরে যাই। প্রোগ্রামটি অপ্রত্যাশিত ইনপুট পরিচালনা করতে পারে কিনা তা দেখতে আমি কিছু র্যান্ডম ইনপুটও পরীক্ষা করি৷
চূড়ান্ত পরীক্ষাটি যাচাই করার উদ্দেশ্যে করা হয়েছে যে প্রোগ্রামটি মূলত উদ্দেশ্য অনুযায়ী কাজ করছে। চূড়ান্ত পরীক্ষার একটি বড় অংশ হল নিশ্চিত করা যে উন্নয়ন চক্রের আগে কাজ করা ফাংশনগুলি চক্রের পরে যোগ করা বা পরিবর্তন করা কোড দ্বারা ভাঙা হয়নি৷
আপনি যদি এটিতে নতুন কোড যোগ করার সাথে সাথে স্ক্রিপ্টটি পরীক্ষা করে থাকেন তবে আপনি মনে করতে পারেন যে চূড়ান্ত পরীক্ষার সময় কোনও আশ্চর্য হওয়া উচিত নয়। ভুল! চূড়ান্ত পরীক্ষার সময় সবসময় চমক আছে. সর্বদা. সেই বিস্ময়গুলি আশা করুন এবং সেগুলি ঠিক করার জন্য সময় ব্যয় করার জন্য প্রস্তুত হন৷ যদি চূড়ান্ত পরীক্ষার সময় কোনো বাগ আবিষ্কৃত না হয়, তাহলে চূড়ান্ত পরীক্ষা করার কোনো মানেই হবে না, তাই না?
উৎপাদনে পরীক্ষা করা হচ্ছে
হুহ—কী?
"অন্তত ছয় মাস ধরে একটি প্রোগ্রাম তৈরি না হওয়া পর্যন্ত সবচেয়ে ক্ষতিকারক ত্রুটি খুঁজে পাওয়া যাবে।"
— ট্রাউটম্যানস প্রোগ্রামিং পোস্টুলেটস
হ্যাঁ, উৎপাদনে পরীক্ষা এখন স্বাভাবিক এবং কাম্য বলে মনে করা হয়। আমি একজন পরীক্ষক হয়েছি, এটি যুক্তিসঙ্গত বলে মনে হচ্ছে। "কিন্তু অপেক্ষা করুন! এটা বিপজ্জনক," আপনি বলেন। আমার অভিজ্ঞতা হল যে এটি একটি ডেডিকেটেড পরীক্ষার পরিবেশে ব্যাপক এবং কঠোর পরীক্ষার চেয়ে বেশি বিপজ্জনক নয়। কিছু ক্ষেত্রে, কোনো বিকল্প নেই কারণ সেখানে কোনো পরীক্ষার পরিবেশ নেই—শুধুমাত্র উৎপাদন।
উৎপাদনে নতুন বা সংশোধিত স্ক্রিপ্ট পরীক্ষা করার প্রয়োজনে Sysadmins কোন অপরিচিত নয়। যে কোনো সময় একটি স্ক্রিপ্ট উত্পাদনে সরানো হয়, এটি চূড়ান্ত পরীক্ষা হয়ে ওঠে। উৎপাদন পরিবেশ সেই পরীক্ষার সবচেয়ে গুরুত্বপূর্ণ অংশ গঠন করে। পরীক্ষার পরিবেশে পরীক্ষকরা স্বপ্ন দেখতে পারেন এমন কিছুই সত্যিকারের উত্পাদন পরিবেশের প্রতিলিপি করতে পারে না৷
প্রোডাকশনে পরীক্ষার কথিত নতুন অভ্যাসটি কেবলমাত্র সিসাডমিনরা যা জেনেছে তার স্বীকৃতি। সর্বোত্তম পরীক্ষা হল উৎপাদন-যতক্ষণ এটি একমাত্র পরীক্ষা না হয়।
অস্পষ্ট পরীক্ষা
৷এটি সেই গুঞ্জনগুলির মধ্যে একটি যা প্রাথমিকভাবে আমার চোখ ঘুরিয়েছিল। এর অপরিহার্য অর্থ সহজ:কিছু না হওয়া পর্যন্ত কাউকে চাবিতে আঘাত করুন এবং দেখুন প্রোগ্রামটি কতটা ভালভাবে পরিচালনা করে। কিন্তু সত্যিই এর থেকে আরো অনেক কিছু আছে।
অস্পষ্ট পরীক্ষাটি অনেকটা সেই সময়ের মতো যখন আমার ছেলে র্যান্ডম ইনপুট সহ এক মিনিটেরও কম সময়ে একটি গেমের জন্য কোডটি ভেঙেছে। এটি তার জন্য গেম লেখার আমার প্রচেষ্টাকে প্রায় শেষ করে দিয়েছে।
বেশিরভাগ পরীক্ষার পরিকল্পনাগুলি খুব নির্দিষ্ট ইনপুট ব্যবহার করে যা একটি নির্দিষ্ট ফলাফল বা আউটপুট তৈরি করে। পরীক্ষাটি সাফল্য হিসাবে একটি ইতিবাচক বা নেতিবাচক ফলাফলকে সংজ্ঞায়িত করে কিনা তা নির্বিশেষে, এটি এখনও নিয়ন্ত্রিত, এবং ইনপুট এবং ফলাফলগুলি নির্দিষ্ট এবং প্রত্যাশিত, যেমন একটি নির্দিষ্ট ব্যর্থতার মোডের জন্য একটি নির্দিষ্ট ত্রুটি বার্তা।
অস্পষ্ট পরীক্ষা হল পরীক্ষার সমস্ত দিকগুলিতে এলোমেলোতার সাথে মোকাবিলা করা, যেমন শুরুর অবস্থা, খুব এলোমেলো এবং অপ্রত্যাশিত ইনপুট, নির্বাচিত বিকল্পগুলির এলোমেলো সংমিশ্রণ, কম মেমরি, উচ্চ স্তরের CPU অন্যান্য প্রোগ্রামগুলির সাথে প্রতিদ্বন্দ্বিতা করা, পরীক্ষার অধীনে প্রোগ্রামের একাধিক উদাহরণ , এবং অন্য কোনো র্যান্ডম শর্ত যা আপনি পরীক্ষায় প্রয়োগ করার কথা ভাবতে পারেন।
আমি শুরু থেকেই কিছু অস্পষ্ট পরীক্ষা করার চেষ্টা করি। যদি ব্যাশ স্ক্রিপ্ট তার খুব প্রাথমিক পর্যায়ে উল্লেখযোগ্য এলোমেলোতার সাথে মোকাবিলা করতে না পারে, তাহলে আপনি আরও কোড যোগ করার সাথে সাথে এটি আরও ভাল হওয়ার সম্ভাবনা নেই। কোড তুলনামূলকভাবে সহজ থাকাকালীন এই সমস্যাগুলি ধরতে এবং সেগুলি ঠিক করার জন্য এটি একটি ভাল সময়। প্রতিটি পর্যায়ে কিছুটা অস্পষ্ট পরীক্ষাও আরও বেশি কোড দ্বারা মুখোশিত হওয়ার আগে সমস্যাগুলি সনাক্ত করতে কার্যকর৷
কোডটি সম্পূর্ণ হওয়ার পরে, আমি আরও কিছু বিস্তৃত অস্পষ্ট পরীক্ষা করতে চাই। সবসময় কিছু অস্পষ্ট পরীক্ষা করা. আমি অবশ্যই কিছু ফলাফল দ্বারা বিস্মিত হয়েছে. প্রত্যাশিত জিনিসগুলির জন্য পরীক্ষা করা সহজ, কিন্তু ব্যবহারকারীরা সাধারণত একটি স্ক্রিপ্ট দিয়ে প্রত্যাশিত জিনিসগুলি করেন না৷
৷আসন্ন আকর্ষণগুলির পূর্বরূপ
এই নিবন্ধটি একটি টেমপ্লেট তৈরির উপায়ে কিছুটা সম্পন্ন করেছে, তবে এটি বেশিরভাগ পরীক্ষার বিষয়ে কথা বলেছে। এর কারণ হল যে কোনো ধরনের প্রোগ্রাম তৈরি করার ক্ষেত্রে টেস্টিং একটি গুরুত্বপূর্ণ অংশ। এই সিরিজের পরবর্তী নিবন্ধে, আপনি -h এর মতো বিকল্পগুলি সনাক্ত করতে এবং কাজ করতে কিছু কোড সহ একটি মৌলিক সহায়তা ফাংশন যোগ করবেন , আপনার ব্যাশ স্ক্রিপ্ট টেমপ্লেটে।
সম্পদ
- ব্যাশের সাথে কীভাবে প্রোগ্রাম করবেন:সিনট্যাক্স এবং টুলস
- ব্যাশের সাথে কীভাবে প্রোগ্রাম করবেন:লজিক্যাল অপারেটর এবং শেল সম্প্রসারণ
- ব্যাশের সাথে কীভাবে প্রোগ্রাম করবেন:লুপস
প্রবন্ধগুলির এই সিরিজটি আংশিকভাবে ডেভিড বোথের তিন-অংশের লিনাক্স স্ব-অধ্যয়ন কোর্সের ভলিউম 2, অধ্যায় 10-এর উপর ভিত্তি করে তৈরি করা হয়েছে, লিনাক্স ব্যবহার এবং পরিচালনা করা—জিরো থেকে সিসঅ্যাডমিন।