আচরণের পার্থক্য
4.3.11 বাশে কিছু পার্থক্য:
প্রস্তাবনা : সর্বদা ব্যবহার []
।
[[ ]]
আমি দেখেছি প্রতিটি নির্মাণের জন্য পসিক্স সমতুল্য রয়েছে ।
আপনি যদি ব্যবহার করেন [[ ]]
:
- বহনযোগ্যতা হারাতে
- পাঠককে অন্য ব্যাশ এক্সটেনশনের জটিলতা শিখতে বাধ্য করুন।
[
একটি অদ্ভুত নাম সহ কেবল একটি নিয়মিত আদেশ, কোনও বিশেষ শব্দার্থিক জড়িত নয়।
Orn [[...]]
কর্ন শেলের সমতুল্য নির্মাণ থেকে অনুপ্রাণিত
² তবে কিছু মান a
বা b
(যেমন +
বা index
) এর জন্য ব্যর্থ হয় এবং সংখ্যাসূচক তুলনা করে a
এবং যদি b
দশমিক পূর্ণসংখ্যার মতো দেখতে লাগে । expr "x$a" '<' "x$b"
উভয় কাছাকাছি কাজ করে।
³ এবং কিছু মানের জন্য ব্যর্থ হয় a
বা b
মত !
বা (
।
B ব্যাশ ৩.২ এবং তারপরে এবং ব্যাশ ৩.১ এর সাথে সামঞ্জস্যতা সরবরাহ করা সক্ষম করা নেই (এর মতো BASH_COMPAT=3.1
)
⁵ যদিও গোষ্ঠীবদ্ধ (এখানে দিয়ে {...;}
কমান্ড দল পরিবর্তে (...)
যা অপ্রয়োজনীয় subshell চালানো হবে) না প্রয়োজনীয় ||
এবং &&
শেল অপারেটার (যেমন বিরোধিতা ||
এবং &&
[[...]]
অপারেটরদের বা -o
/ -a
[
অপারেটরদের) সমান প্রাধান্য আছে। সুতরাং [ a = a ] || [ a = b ] && [ a = b ]
সমতুল্য হবে।
[[
তা দিয়ে কোড ভাল এবং স্পষ্ট, কিন্তু মনে পড়ে সেদিনের কথা যখন আপনি বন্দর হবে ডিফল্ট শেল সঙ্গে ব্যবস্থা যা নয় আপনার scriptworksbash
বাksh
, ইত্যাদি[
কৃপণ, জটিল, কিন্তু যেAK-47
কোনও পরিস্থিতিতে যেমন কাজ করে ।