এটি শেল (ব্যাশ, ড্যাশ) প্রম্পটে কাজ করে:
[ -z "" ] && echo A || echo B
A
যাইহোক, আমি একটি পসিক্স শেল স্ক্রিপ্ট লেখার চেষ্টা করছি , এটি এর শুরু হয়:
#!/bin/sh
[ "${#}" -eq 1 ] || echo "Invalid number of arguments, expected one."; exit 1
readonly raw_input_string=${1}
[ -z "${raw_input_string}" ] && echo "The given argument is empty."; exit 1
এবং আমি জানি না কেন, কিন্তু আমি বার্তা পাবেন না :
প্রদত্ত যুক্তিটি খালি।
আমি যদি স্ক্রিপ্টটিকে এভাবে কল করি:
./test_empty_argument ""
কেন এমন?
if [ X”” = X”$var” ] ; then echo isempty ; fi
[ "" = "$var" ]
ভাল কাজ করবে; একটি উদ্ধৃত খালি স্ট্রিংয়ের যুক্তির তালিকা থেকে সরানো হবে না [
। তবে [ -z "$var" ]
এটিও প্রয়োজনীয় নয়, কারণ এটি ঠিক কাজ করে।