পরীক্ষা কমান্ডটি লিনাক্স কমান্ড লাইনের সাথে আরেকটি উপাদানের তুলনা করার জন্য ব্যবহার করা যেতে পারে কিন্তু এটি শর্তসাপেক্ষ বিবৃতির অংশ হিসাবে ব্যাশ শেল স্ক্রিপ্টগুলিতে সাধারণত সাধারণভাবে ব্যবহৃত হয় যা লজিক এবং প্রোগ্রাম প্রবাহ নিয়ন্ত্রণ করে।
একটি মৌলিক উদাহরণ
আপনি কেবলমাত্র একটি টার্মিনাল উইন্ডো খোলার মাধ্যমে এই কমান্ডগুলি ব্যবহার করতে পারেন।
পরীক্ষা 1-ইক 2 && ইকো "হ্যাঁ" || echo "no"
নিম্নোক্ত কমান্ডটি নিম্নরূপ নিচে ভাগ করা যায়:
- পরীক্ষা - এর মানে আপনি একটি তুলনা করতে চলেছেন
- 1 - প্রথম উপাদান যা আপনি তুলনা যাচ্ছে
- -কি (কিভাবে আপনি তুলনা করা হয়, এই ক্ষেত্রে, আপনি এক নম্বর অন্য সমান কি কিনা পরীক্ষা করা হয়)
- 2 - উপাদান আপনি আবার প্রথম উপাদান তুলনা করা হয়
- && - ফলাফলটি সত্য হলে নিম্নলিখিত বিবৃতিটি চালান
- ইকো "হ্যাঁ" - তুলনাটি যদি সত্য সত্য হয় তাহলে চালানোর জন্য কমান্ড
- || - ফলাফল মিথ্যা হলে নিম্নলিখিত বিবৃতিটি চালান
- echo "no" - যদি কমান্ডটি ফেরত দেয় তাহলে কমান্ডটি চালানো হবে
মূলত, কমান্ড 1 থেকে 2 এর সাথে তুলনা করা হয় এবং তারা ইকো "হ্যাঁ" স্টেটমেন্টের সাথে মিলিত হয় যা "yes" প্রদর্শন করে এবং যদি তারা echo "no" স্টেটমেন্ট কার্যকর না করে যা "না" প্রদর্শন করে তাহলে
তুলনা সংখ্যাগুলি
যদি আপনি এমন সংখ্যাগুলি তুলনা করেন যা সংখ্যা হিসাবে পার্স করে আপনি নিম্নলিখিত তুলনা অপারেটর ব্যবহার করতে পারেন:
- - eq - মান 1 সমান মান 2
- -ge - মান 1 বড় বা সমান মান 2
- -gt - মান 2 এর চেয়ে মান 1 বড়
- -লি - মান 1 কম বা সমান মান 2
- -lt - মান 1 কম মান 2 কম 1
- -এ - মান 1 সমান মান 2 না
উদাহরণ:
পরীক্ষা 1-ইক 2 && ইকো "হ্যাঁ" || echo "no"
(স্ক্রীনে "না" প্রদর্শন করে কারণ 1 টি সমান নয়)
পরীক্ষা 1 -২ এবং & echo "হ্যাঁ" || echo "no"
(স্ক্রীনে "না" প্রদর্শিত হয় কারণ 1 বড় বা সমান নয় 2)
পরীক্ষা 1 -gt 2 && প্রতিধ্বনি "হ্যাঁ" || echo "no"
(স্ক্রীনে "না" প্রদর্শিত হয় কারণ 1 2 এর থেকে বড় নয়)
পরীক্ষা 1-লে 2 && ইকো "হ্যাঁ" || echo "no"
(স্ক্রীনে "হ্যাঁ" প্রদর্শন করে কারণ 1টি 2 এর কম বা এর সমান)
পরীক্ষা 1 -লটি 2 && ইকো "হ্যাঁ" || || echo "no"
(স্ক্রীনে "হ্যাঁ" প্রদর্শন করে কারণ 1টি 2 এর কম বা এর সমান)
পরীক্ষা 1-এর 2 এবং& প্রতিধ্বনি "হ্যাঁ" || echo "no"
(স্ক্রীনে "হ্যাঁ" প্রদর্শন করে কারণ 1 টি সমান নয়)
পাঠ্য তুলনা
আপনি স্ট্রিং হিসাবে পার্স যে উপাদান তুলনা করা হলে আপনি নিম্নলিখিত তুলনা অপারেটর ব্যবহার করতে পারেন:
- = - স্ট্রিং 1 ম্যাচ স্ট্রিং 2 দেয়
- ! = - স্ট্রিং 2 থেকে স্ট্রিং 1 ভিন্ন
- -n - স্ট্রিং দৈর্ঘ্য 0 এর চেয়ে বড়
- -z - হল স্ট্রিং দৈর্ঘ্য 0
উদাহরণ:
পরীক্ষা "string1" = "string2" && echo "হ্যাঁ" || || echo "no"
(স্ক্রীনে "না" প্রদর্শন করে কারণ "string1" সমান নয় "string2")
পরীক্ষা "string1"! = "string2" && echo "হ্যাঁ" || echo "no"
(স্ক্রীনে "হ্যাঁ" প্রদর্শন করে কারণ "string1" "স্ট্রিং 2" সমান নয়)
test -n "string1" && echo "yes" || || echo "no"
(স্ক্রীনে "হ্যাঁ" প্রদর্শন করে কারণ "string1" এর শূন্যের থেকে একটি স্ট্রিং দৈর্ঘ্য বেশি)
test -z "string1" && echo "yes" || || echo "no"
(স্ক্রিনে "না" প্রদর্শন করে কারণ "string1" এর শূন্যের থেকে বেশি স্ট্রিং লাইন আছে)
ফাইল তুলনা
আপনি ফাইলগুলি তুলনা করলে আপনি নিম্নলিখিত তুলনা অপারেটর ব্যবহার করতে পারেন:
- -ফ - ফাইলগুলি একই ডিভাইস এবং ইনডোর সংখ্যার (কি একই ফাইল) আছে
- -nt - প্রথম ফাইলটি দ্বিতীয় ফাইলের চেয়ে নতুন
- -ট - প্রথম ফাইলটি দ্বিতীয় ফাইলের চেয়ে পুরোনো
- -বি - ফাইল বিদ্যমান এবং ব্লক বিশেষ
- -c - ফাইলটি বিদ্যমান এবং অক্ষরটি বিশেষ
- -d - ফাইলটি বিদ্যমান এবং একটি ডিরেক্টরি
- -e - ফাইলটি বিদ্যমান
- -f - ফাইলটি বিদ্যমান এবং একটি নিয়মিত ফাইল
- -g - ফাইল বিদ্যমান এবং নির্দিষ্ট গ্রুপ নম্বর আছে
- -জি - ব্যবহারকারীর গোষ্ঠীর ফাইলটি বিদ্যমান এবং মালিক
- -হ - ফাইলটি বিদ্যমান এবং একটি সিম্বলিক লিঙ্ক
- -k - ফাইল বিদ্যমান এবং এর স্টিকি বিট সেট আছে
- -এল -এর মতই
- -O - ফাইলটি আপনি মালিক হিসাবে উপস্থিত আছেন
- -পি - ফাইলটি বিদ্যমান এবং একটি নামযুক্ত পাইপ
- -r - ফাইলটি বিদ্যমান এবং পঠনযোগ্য
- -স - ফাইলটি বিদ্যমান এবং শূন্যের চেয়ে বড় আকার রয়েছে
- -স - ফাইলটি বিদ্যমান এবং এটি একটি সকেট
- -t - ফাইলের বর্ণনাটি একটি টার্মিনালে খোলা হয়
- -u - ফাইলটি বিদ্যমান এবং সেট-ব্যবহারকারী-আইডি বিট সেট করা আছে
- -w - ফাইলটি বিদ্যমান এবং লিখনযোগ্য
- -x - ফাইলটি বিদ্যমান এবং এক্সিকিউটেবল
উদাহরণ:
test / path / to / file1 -n / path / to / file2 && echo "yes"
(যদি file1 ফাইল ২ এর চেয়ে নতুন হয় তবে "হ্যাঁ" শব্দ প্রদর্শিত হবে)
test -e / path / to / file1 && echo "yes"
(যদি ফাইল 1 বিদ্যমান থাকে তবে "হ্যাঁ" শব্দ প্রদর্শিত হবে)
test -o / path / to / file1 && echo "yes"
(যদি আপনি ফাইল 1 মালিক হন তবে "হ্যাঁ" শব্দ প্রদর্শিত হয়)
পরিভাষা
- ব্লক বিশেষ - ফাইল একটি ব্লক ডিভাইস যার মানে বাইটের ব্লকগুলিতে ডাটা পড়া হয়। সাধারণত এটি হার্ড ড্রাইভের মতো ডিভাইস ফাইল।
- ক্যারেক্টার বিশেষ - ফাইলটি অবিলম্বে প্রয়োগ করা হয় যখন আপনি এটিতে লেখেন এবং সাধারণত একটি ডিভাইস যেমন একটি সিরিয়াল পোর্ট
একাধিক শর্তাবলী তুলনা
এখন পর্যন্ত সবকিছুই একের সাথে একের সাথে তুলনা করছে কিন্তু যদি আপনি দুটি শর্ত তুলনা করতে চান
উদাহরণস্বরূপ, যদি একটি প্রাণী 4 পা আছে এবং যায় "moo" এটি সম্ভবত একটি গাভী শুধু 4 পায়ে পরীক্ষা করার নিশ্চয়তা দেয় না যে আপনার একটি গরু আছে কিন্তু এটি নিশ্চিত করে তোলে শব্দ চেক করে
উভয় অবস্থার পরীক্ষা একবার নিম্নলিখিত বিবৃতি ব্যবহার করুন:
পরীক্ষা 4-4qqqqqqqqqqqqqqqqqkqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq ইকো "এটি একটি গরু নয়"
এখানে মূল অংশ- একটি যা দাঁড়িয়েছে এবং।
একই পরীক্ষা সম্পাদনের একটি ভাল এবং আরো সাধারণভাবে ব্যবহৃত উপায় আছে এবং এটি নিম্নরূপঃ
পরীক্ষা 4-ইক 4 এবং টেস্ট "moo" = "moo" && echo "এটি একটি গরু" || ইকো "এটি একটি গরু নয়"
আরেকটি পরীক্ষা যা আপনি করতে চান তা দুইটি বিবৃতির তুলনা করতে পারেন এবং যদি সত্য ফলাফল হয় একটি স্ট্রিং। উদাহরণস্বরূপ, যদি আপনি "file1.txt" নামে একটি ফাইল উপস্থিত বা "file1.doc" নামক একটি ফাইল বিদ্যমান রয়েছে তা পরীক্ষা করতে চান তবে আপনি নিম্নোক্ত কমান্ডটি ব্যবহার করতে পারেন
test -e file1.txt -o -e file1.doc && echo "file1 exists" || || echo "file1 বিদ্যমান নেই"
এখানে মূল অংশটি হল -o যা দাঁড়িয়েছে বা এর জন্য।
একই পরীক্ষা সম্পাদনের একটি ভাল এবং আরো সাধারণভাবে ব্যবহৃত উপায় আছে এবং এটি নিম্নরূপঃ
test -e file1.txt || || test -e file1.doc && echo "file1 exists" || echo "file1 বিদ্যমান নেই"
পরীক্ষার মূলশব্দ দূর করে
তুলনা করার জন্য আপনাকে আসলে শব্দ পরীক্ষাটি ব্যবহার করতে হবে না। আপনাকে যা করতে হবে তা নিম্নরূপঃ বর্গাকার বন্ধনীগুলির বিবৃতিটি বন্ধ করা হয়েছে:
[-e ফাইল 1.txt] && ইকো "ফাইল 1 বিদ্যমান" || echo "file1 বিদ্যমান নেই"
[এবং] মূলত পরীক্ষা হিসাবে একই মানে।
এখন আপনি জানেন যে আপনি নিম্নোক্ত শর্তগুলি তুলনায় উন্নত করতে পারেন:
[4 -কী 4] && ["মুও" = "মু") && ইকো "এটি একটি গরু" || ইকো "এটি একটি গরু নয়"
[-e ফাইল 1.txt] || || [-e file1.doc] && ইকো "ফাইল 1 বিদ্যমান" || echo "file1 বিদ্যমান নেই"
সারাংশ
স্ক্রিপ্টগুলিতে পরীক্ষা কমান্ডটি আরো দরকারী কারণ আপনি অন্য একের ভেরিয়েবলের মান পরীক্ষা করতে পারেন এবং প্রোগ্রামের প্রবাহ নিয়ন্ত্রণ করতে পারেন। স্ট্যান্ডার্ড কমান্ড লাইনের উপর, আপনি এটি ব্যবহার করতে পারেন কিনা তা পরীক্ষা করতে একটি ফাইল বিদ্যমান বা