যেহেতু আপনি সংখ্যার তুলনা করছেন, আপনি একটি গাণিতিক এক্সপ্রেশন ব্যবহার করতে পারেন , যা প্যারামিটারগুলি এবং তুলনামূলক সহজ পরিচালনা করার অনুমতি দেয়:
wget -q --tries=10 --timeout=20 --spider http://google.com
if (( $? != 0 )); then
echo "Sorry you are Offline"
exit 1
fi
পরিবর্তে কিভাবে খেয়াল করুন -ne
, আপনি কেবল ব্যবহার করতে পারেন !=
। একটি গাণিতিক প্রসঙ্গে, আমাদের এমনকি $
পরামিতিগুলিতে অর্থ প্রদান করতে হবে না , অর্থাৎ,
var_a=1
var_b=2
(( var_a < var_b )) && echo "a is smaller"
পুরোপুরি সূক্ষ্ম কাজ করে। $?
যদিও এটি বিশেষ প্যারামিটারে প্রয়োগ হয় না ।
আরও, যেহেতু (( ... ))
শূন্য-অ-মানকে সত্য হিসাবে মূল্যায়ন করা হয়, অর্থাৎ শূন্য-অমূল্যগুলির জন্য 0-এর রিটার্ন স্ট্যাটাস এবং অন্যথায় 1 এর রিটার্নের স্ট্যাটাস রয়েছে, অন্যথায় আমরা সংক্ষিপ্ত করতে পারি
if (( $? )); then
তবে এটি সংরক্ষিত কীস্ট্রোকের চেয়ে বেশি লোককে বিভ্রান্ত করতে পারে।
(( ... ))
কনস্ট্রাক্ট ব্যাশ পাওয়া যায়, কিন্তু দ্বারা প্রয়োজন হয় না POSIX শেল স্পেসিফিকেশন (যদিও সম্ভব এক্সটেনশান হিসাবে উল্লিখিত)।
এই সব বলা হচ্ছে, কোলের উত্তর এবং স্টিভেনের উত্তরের$?
মতো আমার মতে সম্পূর্ণ এড়ানো ভাল ।
if ! [[ ...
কাজ করে