ডেবিয়ান এবং উবুন্টু বেশ কয়েকটি জিনিসের কারণে ড্যাশ (আইরিচ) এ স্যুইচ করেছে। প্রথমত, বছরের পর বছর ধরে বাশ বড় হয়ে উঠেছে। আসলে /bin/bash
আমার উবুন্টু 8.04 সিস্টেমে বাইনারিটি প্রায় দশগুণ (!) হিসাবে বড় /bin/dash
। এখন, প্রতিদিনের শেল ব্যবহারের ক্ষেত্রে এটি তেমন গুরুত্বপূর্ণ নয়, তবে নিম্নলিখিত পরিস্থিতিতে এটি গুরুত্বপূর্ণ does
- ড্যাশ অনেক ছোট এবং এইভাবে দ্রুত লোড হয়, যা init-স্ক্রিপ্টগুলির জন্য একটি वरदान। আপনার যদি এগুলি প্রচুর শুরু করতে হয় তবে প্রতিবার বাশের পরিবর্তে ড্যাশ লোড করা জিনিসগুলিকে যথেষ্ট গতি দেয়।
- ড্যাশের ছোট আকারের কারণে, দেবিয়ান এবং উবুন্টু তাদের আরআরডি আকারের একটি বিশাল বড় অংশ শেভ করতে সক্ষম হয়েছে, অন্যান্য স্টাফের জন্য আরও জায়গা রেখে (এবং আবার দ্রুতগতিতে জিনিসগুলি)।
স্ক্রিপ্টিংয়ের জন্য ড্যাশের পরিবর্তে ড্যাশ ব্যবহার করার নেতিবাচক দিকটি হ'ল প্রচুর লোকেরা কেবল বাশের সিনট্যাকটিকাল নান্দিকতা ব্যবহার করে, তথাকথিত বাশিজম । বাশিজমের উদাহরণগুলি সাবস্ট্রিংগুলি হ'ল:
echo $SHELL
/bin/bash
a=1234567890
echo ${a}
1234567890
echo ${a:3}
4567890
echo ${a:3:1}
4
এবং এই:
echo ${a#123}
4567890
অন্যদিকে ড্যাশ, প্রধানত পসিক্স অনুগত হওয়ার লক্ষ্য রাখে (এবং এর চেয়ে বেশি কিছু নয়), আপনি যদি এটি চেষ্টা করেন তবে আপনাকে একটি খারাপ বিকল্প ত্রুটি দেবে:
echo $SHELL
/bin/dash
# actually, it will read /bin/bash above, because if you just run dash
# it will not set the $SHELL variable :)
a=1234567890
echo ${a}
1234567890
echo ${a:3}
dash: Bad substitution
যদি আপনি ব্যবহার এই বিষয়টি হবে /bin/sh
(এবং dash
আপনার shellscripts এবং তাদের ব্যবহারের Bashisms জন্য অনুবাদক হিসাবে)। দেবিয়ান এবং উবুন্টুর বাশিজম সম্পর্কে বিশেষত উইকি পৃষ্ঠাগুলি রয়েছে এবং কেন তারা সাধারণত শেলস স্ক্রিপ্টগুলিতে এবং বিশেষত ইন-স্ক্রিপ্টগুলিতে খারাপ। অতএব, আপনার স্ক্রিপ্টের জন্য আপনার প্রয়োজন /bin/sh
বা /bin/bash
দোভাষী হিসাবে আপনার সচেতনভাবে নির্বাচন করা উচিত ।
ড্যাশগুলি আপনার সিস্টেমে ডিফল্ট শেল হিসাবে ব্যবহার করার কথা নয়। তার জন্য কেবল বাশ ব্যবহার করুন। আপনার স্ক্রিপ্টগুলির বহনযোগ্যতার জন্য, আপনি অন্যান্য লিনাক্স স্বাদ এবং ইউনিক্সগুলিতে স্ক্রিপ্টগুলি চলতে থাকা প্রতিকূলতা বাড়াতে ড্যাশকে দোভাষী হিসাবে ব্যবহার করতে পারেন।