আমি বর্তমানে বাশ পরীক্ষার কাঠামো লিখছি, যেখানে একটি পরীক্ষার ফাংশনে, উভয় স্ট্যান্ডার্ড বাশ পরীক্ষা ( [[
) পাশাপাশি পূর্বনির্ধারিত ম্যাথার ব্যবহার করা যেতে পারে। ম্যাচাররা '[[' এ মুদ্রণযোগ্য এবং কোনও রিটার্ন কোড ফেরত দেওয়ার পাশাপাশি, কী প্রত্যাশা করা হয়েছিল তা বোঝাতে কিছু অর্থপূর্ণ বার্তা সেট করে।
উদাহরণ:
string_equals() {
if [[ ! $1 = $2 ]]; then
error_message="Expected '$1' to be '$2'."
return 1
fi
}
সুতরাং, যখন কোনও ম্যাচার ব্যবহার করা হয় এবং এটি ব্যর্থ হয়, কেবল তখনই একটি ত্রুটি_সীমা সেট করা থাকে।
এখন, এক পর্যায়ে পরে, আমি পরীক্ষাগুলি সফল হয়েছিল কিনা তা পরীক্ষা করি। যদি এটি সফল হয় তবে আমি প্রত্যাশাটি সবুজ রঙে মুদ্রণ করি, যদি এটি লাল ব্যর্থ হয়।
তদ্ব্যতীত, এখানে একটি ত্রুটি_ম্যাসেজ সেট থাকতে পারে, তাই আমি পরীক্ষা করি যে কোনও বার্তা উপস্থিত থাকলে, এটি মুদ্রণ করুন এবং তারপরে সেটটি সেট না করে (কারণ নিম্নলিখিত পরীক্ষাগুলি সেট নাও করতে পারে error_message
):
if [[ $error_message ]]; then
printf '%s\n' "$error_message"
unset -v error_message
fi
এখন আমার প্রশ্ন হ'ল যদি ভেরিয়েবলটি আনসেট করা ভাল হয় বা কেবল এটি পছন্দ করে '' তে সেট করা যায়
error_message=''
কোনটা ভালো? এটি কি আসলেই কোনও পার্থক্য করে? বা সম্ভবত আমার একটি অতিরিক্ত পতাকা লাগানো উচিত যা ইঙ্গিত করে যে বার্তাটি সেট করা হয়েছিল?
error_message
অন্য কোনও কিছুর সাথে তুলনা করেন না, আমি বলব এটির কোনও গুরুত্ব নেই। তবে, আমি মনে করি আপনি চান[[ $error_message ]]
, অন্যথায় আপনি পরীক্ষা করছেন যে আক্ষরিক স্ট্রিং "ত্রুটি_মেসেজ" বিদ্যমান আছে exists