বাশের জন্য একটি দ্রুত বুলিয়ান প্রাইমার
দ্য if
বিবৃতি একটি আর্গুমেন্ট হিসাবে কমান্ড লাগে (কি হিসাবে &&
, ||
ইত্যাদি)। কমান্ডের পূর্ণসংখ্যার ফলাফলের কোডটি বুলিয়ান (0 / নাল = সত্য, 1 / অন্য = মিথ্যা) হিসাবে ব্যাখ্যা করা হয়।
test
বিবৃতি অপারেটর ও আর্গুমেন্ট হিসাবে operands লাগে এবং একই বিন্যাসে ফলে কোড নিয়ে এসেছে if
। test
বিবৃতিটির একটি উপনাম [
, যা প্রায়শই if
আরও জটিল তুলনা সম্পাদন করতে ব্যবহৃত হয় ।
true
এবংfalse
বিবৃতি কিছুই করতে এবং এর ফলে কোড আসতে (0 এবং 1 যথাক্রমে)। সুতরাং এগুলি ব্যাশে বুলিয়ান আক্ষরিক হিসাবে ব্যবহার করা যেতে পারে। তবে আপনি যদি বিবৃতিগুলি এমন জায়গায় রেখে দেন যেখানে সেগুলি স্ট্রিং হিসাবে ব্যাখ্যা করা হয়, আপনি সমস্যাগুলিতে চলে যাবেন। তোমার ক্ষেত্রে:
if [ foo ]; then ... # "if the string 'foo' is non-empty, return true"
if foo; then ... # "if the command foo succeeds, return true"
তাই:
if [ true ] ; then echo "This text will always appear." ; fi;
if [ false ] ; then echo "This text will always appear." ; fi;
if true ; then echo "This text will always appear." ; fi;
if false ; then echo "This text will never appear." ; fi;
এটি যেমন কিছু করার অনুরূপ echo '$foo'
বনাম এরecho "$foo"
।
test
বিবৃতি ব্যবহার করার সময় , ফলাফল ব্যবহৃত অপারেটরগুলির উপর নির্ভর করে।
if [ "$foo" = "$bar" ] # true if the string values of $foo and $bar are equal
if [ "$foo" -eq "$bar" ] # true if the integer values of $foo and $bar are equal
if [ -f "$foo" ] # true if $foo is a file that exists (by path)
if [ "$foo" ] # true if $foo evaluates to a non-empty string
if foo # true if foo, as a command/subroutine,
# evaluates to true/success (returns 0 or null)
সংক্ষেপে , আপনি যদি পাস / ব্যর্থ (ওরফে "সত্য" / "মিথ্যা") হিসাবে কিছু পরীক্ষা করতে চান তবে আপনার কাছে একটি আদেশ পাঠানif
&&
বন্ধনী ছাড়াই বা ইত্যাদির বিবৃতিতে । জটিল তুলনার জন্য, সঠিক অপারেটরগুলির সাথে বন্ধনী ব্যবহার করুন।
এবং হ্যাঁ, আমি সচেতন যে বাশে নেটিভ বুলিয়ান টাইপের মতো কোনও জিনিস নেই, এবং এটি if
এবং [
এবং true
প্রযুক্তিগতভাবে "কমান্ডগুলি" এবং "বিবৃতি" নয়; এটি কেবল একটি খুব মৌলিক, কার্যকরী ব্যাখ্যা।