[ -n ]-nপরীক্ষা ব্যবহার করে না ।
-nমধ্যে [ -n ]এ সব একটি পরীক্ষা নয়। যখন [এবং এর মধ্যে যখন কেবল একটি যুক্তি থাকে তখন ]সেই আর্গুমেন্টটি এমন একটি স্ট্রিং যা পরীক্ষা করা হয় এটি খালি কিনা তা পরীক্ষা করার জন্য। এমনকি যদি সেই স্ট্রিংটির একটি শীর্ষস্থানীয় থাকে -, তখনও এটি পরীক্ষার পরিবর্তে অপারেন্ড হিসাবে ব্যাখ্যা করা হয়। যেহেতু স্ট্রিং -nখালি না থাকে - এটা দুই অক্ষর রয়েছে, -এবং n, না শূন্য অক্ষর [ -n ]মূল্যায়ণ সত্যতে।
হিসাবে ইগ্ন্যাশীয় Vazquez-Abrams বলছেন , যেখানে stringএকটি একক যুক্তি পরীক্ষা করা হয়ে থাকে, stringএ একই হিসাবে পরীক্ষা দ্বারা এটি সম্পাদনা । যখন হতে হয় , বিশেষ কিছুই ঘটে না। মধ্যে এবং দ্বিতীয় মধ্যে কেবল স্ট্রিং হয় শূন্যতা জন্য পরীক্ষা করা হচ্ছে।[ string ][ -n string ]string-n-n[ -n ]-n[ -n -n ]
যখন এর মধ্যে একটি মাত্র যুক্তি থাকে [এবং ]সেই যুক্তিটি সর্বদা অহংকারের জন্য পরীক্ষা করার জন্য একটি স্ট্রিং থাকে, যদিও এটি পরীক্ষার মতো একই নামকরণ হয় be একইভাবে, যখন [এবং এর মধ্যে দুটি তর্ক হয় এবং এর ]মধ্যে প্রথমটি হয় -n, দ্বিতীয়টি সর্বদা অহংকারের জন্য পরীক্ষা করার জন্য একটি স্ট্রিং থাকে, যদিও এটি পরীক্ষার মতো একই নামকরণ হয় happens এটি কেবল কারণ এটির জন্য সিনট্যাক্সটি [জোর দেয় যে এর মধ্যে [এবং ]পরে একটি একক যুক্তি -nএকটি স্ট্রিং অপরেন্ড nd
একই কারণে যে জন্য [ -n ]ব্যবহার করে না -nপরীক্ষা, [ -z ]ব্যবহার করে না -zপরীক্ষা।
এর জন্য সহায়তা পরীক্ষা করে [আপনি এ সম্পর্কে আরও শিখতে bashপারেন। লক্ষ্য করুন যে এটি একটি শেল অন্তর্নির্মিত :
$ type [
[ is a shell builtin
সুতরাং আপনি help [এটিতে সহায়তা পেতে দৌড়াতে পারেন:
$ help [
[: [ arg... ]
Evaluate conditional expression.
This is a synonym for the "test" builtin, but the last argument must
be a literal `]', to match the opening `['.
কোন পরীক্ষাগুলি সমর্থিত এবং কীভাবে তারা কাজ করে সে সম্পর্কে আরও তথ্যের জন্য আপনাকে সহায়তাটি দেখতে হবে test। আপনি যখন কমান্ডটি চালাবেন help test, আপনি একটি বিশদ তালিকা পাবেন। এগুলি সমস্ত পুনরুত্পাদন করার পরিবর্তে স্ট্রিং অপারেটরদের সম্পর্কে এখানে অংশটি রয়েছে:
-z STRING True if string is empty.
-n STRING
STRING True if string is not empty.
STRING1 = STRING2
True if the strings are equal.
STRING1 != STRING2
True if the strings are not equal.
STRING1 < STRING2
True if STRING1 sorts before STRING2 lexicographically.
STRING1 > STRING2
True if STRING1 sorts after STRING2 lexicographically.
লক্ষ্য করুন -n STRINGএবং ঠিক STRINGএকই কাজ করুন: তারা পরীক্ষা করে যদি স্ট্রিংটি STRINGখালি না থাকে।
[ -t ]পরীক্ষা ছিল কিনা stdout- এ একটি টার্মিনাল (ছোট ছিল[ -t 1 ]) এবং কিছু শাঁস এখনও এটা করছ (ক্ষেত্রেksh93শুধুমাত্র যখন যে-tআক্ষরিক হয়), তাই এটা ব্যবহার করা ভালো[ -n "$var" ]চেয়ে[ "$var" ]। যদিও এখনও কিছু পুরানো মধ্যে ব্যর্থ হবেtestএর মানের জন্য বাস্তবায়নের$varমত=, যে ক্ষেত্রে[ "" != "$var" ]বা[ "x$var" != x ]বাcase $x in "")...ভাল হতে পারে।