শেল স্ক্রিপ্টিং: -z এবং -n বিকল্পগুলির সাথে


53

আমার একটি শেল স্ক্রিপ্ট রয়েছে যেখানে আমাদের নীচের লাইনগুলি রয়েছে if [ -z "$xyz" ]এবং if [ -n "$abc" ]তবে তাদের উদ্দেশ্য কী তা নিশ্চিত। কেউ দয়া করে ব্যাখ্যা করতে পারেন?

উত্তর:


63

আপনি এখানে বাশের অপারেটরদের জন্য খুব সুন্দর রেফারেন্স পেতে পারেন । আপনি যদি অন্য কোনও শেল ব্যবহার করে থাকেন তবে কেবল অনুসন্ধান করুন <my shell> operatorsএবং আপনার প্রয়োজনীয় সমস্ত কিছুই খুঁজে পাবেন। আপনার বিশেষ ক্ষেত্রে, আপনি ব্যবহার করছেন:

-n
   string is not null.

-z
  string is null, that is, has zero length

বর্ণনা করা:

$ foo="bar";
$ [ -n "$foo" ] && echo "foo is not null"
foo is not null
$ [ -z "$foo" ] && echo "foo is null"
$ foo="";
$ [ -n "$foo" ] && echo "foo is not null"
$ [ -z "$foo" ] && echo "foo is null"
foo is null

3

man testঅথবা man [আপনাকে পরীক্ষা কমান্ডের সমস্ত বিকল্প দেবে। এই ক্ষেত্রে, -n $ abc এর সামগ্রীটির শূন্য-দৈর্ঘ্য নেই কিনা তা পরীক্ষা করে দেখানো হচ্ছে এবং z xyz এর সামগ্রীটি শূন্য দৈর্ঘ্যের স্ট্রিং কিনা তা পরীক্ষা করে দেখছে।


মানুষ [জিএনইউ বাশ, সংস্করণ 4.1.2 (1) -রিলিজ (x86_64-redhat-linux-gnu) এ আমার জন্য কাজ করে না। ম্যান টেস্টের জন্য +1।
অ্যান্ড্রু লরিয়ান

1
দ্রষ্টব্য man test(সর্বদা?) বাহ্যিক-প্রোগ্রাম সংস্করণের জন্য ম্যান পৃষ্ঠাটি দেয়, যা (কমপক্ষে GNU-coreutils সংস্করণের জন্য) স্পষ্টভাবে সতর্ক করে দেয় যে কয়েকটি (IME সর্বাধিক) শেলের একটি বিল্টিন সংস্করণ রয়েছে যা আলাদা হতে পারে।
dave_thompson_085
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.