[ -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 "")...
ভাল হতে পারে।