.তিহাসিকভাবে, test
কমান্ডটি প্রথমে বিদ্যমান ছিল (কমপক্ষে ১৯৯৯ সালে ইউনিক্স সপ্তম সংস্করণে ফিরে আসা )। এটা তোলে অপারেটর ব্যবহার করা =
এবং !=
স্ট্রিং তুলনা, এবং -eq
, -ne
, -lt
, ইত্যাদি নম্বর মিলাতে। উদাহরণস্বরূপ, test 0 = 00
মিথ্যা, তবে test 0 -eq 00
সত্য। আমি জানি না কেন এই সিনট্যাক্সটি বেছে নেওয়া হয়েছিল, তবে এটি ব্যবহার এড়ানো <
এবং >
এই শেলটি পুনঃনির্দেশ অপারেটর হিসাবে পার্স করে থাকতে পারে। test
কমান্ড কয়েক বছর পরে অন্য সিনট্যাক্স করেছেন: [ … ]
সমতূল্য test …
।
[[ … ]]
শর্তাধীন বাক্য গঠন, যা ভিতরে <
এবং >
মূল্য উদ্ধৃতি ছাড়া অপারেটার হিসেবে ব্যবহার করা যাবে, পরে ksh যোগ করা হয়েছিল। এটি পিছনে সামঞ্জস্য রেখেছিল [ … ]
, সুতরাং এটি একই অপারেটর ব্যবহার করে তবে যুক্ত করে <
এবং >
স্ট্রিংগুলির তুলনা করতে (উদাহরণস্বরূপ, [[ 9 > 10 ]]
তবে [[ 9 -lt 10 ]]
)। আরও তথ্যের জন্য দেখুন একক বা ডাবল বন্ধনী - ব্যাশ ব্যবহার করুন
পাটিগণিতের প্রকাশগুলিও test
কমান্ডের চেয়ে পরে 1980 এর দশকের একসময় কর্ন শেলের মধ্যে এসেছিল । তারা সি ভাষার বাক্য গঠনটি অনুসরণ করেছিল যা ইউনিক্স চেনাশোনাগুলিতে খুব জনপ্রিয় ছিল। সুতরাং তারা সি'র অপারেটরগুলি ব্যবহার করত: ==
সাম্যতার <=
জন্য, কম-বা সমান ইত্যাদির জন্য etc.
ইউনিক্স সপ্তম সংস্করণে পাটিগণিতের অভিব্যক্তি ছিল না, তবে এতে expr
কমান্ডটি রয়েছে , যা এর তুলনা অপারেটরগুলি সহ পূর্ণসংখ্যার ক্রিয়াকলাপগুলির জন্য সি-এর মতো সিনট্যাক্সও প্রয়োগ করেছিল। শেল স্ক্রিপ্টে, শেল থেকে রক্ষা করতে অক্ষরগুলি <
এবং >
উদ্ধৃতি দিতে হত, যেমন if expr 1 \< 2; …
সমান if test 1 -lt 2; …
। শেলের গাণিতিক এক্সপ্রেশনগুলির সংযোজন expr
অপ্রচলিত বেশিরভাগ ব্যবহার করে , তাই এটি আজকাল সুপরিচিত নয়।
কোনও শ স্ক্রিপ্টে, আপনি একটি পূর্ণসংখ্যা মান গণনা [ … ]
করতে এবং পূর্ণসংখ্যার তুলনা করতে সাধারণত পাটিগণিতের এক্সপ্রেশন ব্যবহার করেন ।
if [ "$((x + y))" -lt "$z" ]; then …
কোনও ksh, bash বা zsh স্ক্রিপ্টে আপনি ((…))
উভয়ের জন্য ব্যবহার করতে পারেন ।
if ((x + y < z)); then …
[[ … ]]
আপনি পূর্ণসংখ্যার ছাড়া অন্য কিছু জড়িত কন্ডিশন ব্যবহার করতে চান তাহলে ফর্ম দরকারী।
= != < <= > >=
স্ট্রিং তুলনা করুন ।1 -eq 01
তবে1 != 01
এবং8 -lt 42
তবে8 > 42