একাধিক প্রোগ্রাম রয়েছে যা এর ভাষা বাস্তবায়িত করে /bin/sh
। উবুন্টুতে, /bin/sh
হ'ল ড্যাশ, যা অল্প পরিমাণে স্মৃতি ব্যবহার করার জন্য দ্রুত তৈরি করা হয়েছে এবং এটি প্রত্যাশিত ন্যূনতম চেয়ে অনেক বেশি সমর্থন করে না /bin/sh
। আরএইচইএল-এ, /bin/sh
বাশ, যা ধীর এবং ধীরে ধীরে মেমরি ব্যবহার করে তবে এর আরও বৈশিষ্ট্য রয়েছে। এই বৈশিষ্ট্যগুলির মধ্যে একটি হ'ল শর্তাধীন সিনট্যাক্সের ==
জন্য অপারেটর [
। ড্যাশ সমর্থন করে [
, যা একটি প্রাথমিক শ বৈশিষ্ট্য, তবে এতে ==
অপারেটর নেই যা ব্যাশ (এবং কেএসএস এবং জেডএস) এক্সটেনশন।
আপনি ব্যাশ ব্যবহার করে আপনার সিস্টেমটি স্যুইচ করতে পারেন। উবুন্টুতে /bin/sh
এটির প্রতীকী লিঙ্ক dash
। পরিবর্তে আপনি এটি একটি প্রতীকী লিঙ্ক করতে পারেন bash
। ডেবিয়ান এবং উবুন্টু (এবং ডেরিভেটিভস) এর বর্তমান সংস্করণগুলি এটিকে ড্যাশের একটি ইনস্টলেশন বিকল্প হিসাবে তৈরি করে। এটি পরিবর্তন করতে, চালান
sudo dpkg-reconfigure dash
এবং ড্যাশ হিসাবে ড্যাশ রাখতে বাশগুলিতে /bin/sh
স্যুইচ করতে "হ্যাঁ" উত্তর দিন ।
আপনি যেমন বাশ রাখতে পারেন /bin/sh
তবে এটি আপনার সিস্টেমটিকে কিছুটা ধীর করে তুলবে। এটি এমনকি অনুমেয় যে কোনও সিস্টেমের স্ক্রিপ্ট ব্যাশের সাথে সঙ্গতিপূর্ণ নয়, যদিও এটি সম্ভবত অসম্ভব যেহেতু বাশ বেশিরভাগ ড্যাশের সুপারসেট।
যেগুলির বিতরণগুলির প্রয়োগগুলির মধ্যে চয়ন করার জন্য কোনও ইন্টারফেস নেই /bin/sh
, এখানে কীভাবে বাশে স্যুইচ করতে হয়।
sudo ln -s bash /bin/sh.bash
sudo mv /bin/sh.bash /bin/sh
একটি টার্মিনাল খোলা রাখুন এবং পরীক্ষা করুন যে আপনি এর পরেও কিছু sh
স্ক্রিপ্ট চালাতে পারেন । আপনি যদি এই আদেশটি জগাখিচুড়ি করেন তবে এটি আপনার সিস্টেমকে অকেজো করে তুলবে। (উপায় দ্বারা, কারণ আমি একাধিক কমান্ড উপরে বদলে সহজবোধ্য সুদর্শন ব্যবহৃত sudo ln -sf bash /bin/sh
হয় ln -sf
পারমাণবিক নয়। বোঝা যাচ্ছে যে নেতারা অসম্ভাব্য ক্ষেত্রে আপনার কম্পিউটার এই অপারেশনের সময় ক্র্যাশ, আপনি রেসকিউ মিডিয়া থেকে বুট প্রয়োজন চাই এটিকে পুনরুদ্ধার করতে। বিপরীতে, mv
পারমাণবিক।)
ড্যাশ হিসাবে পুনরুদ্ধার করতে /bin/sh
:
sudo ln -s dash /bin/sh.dash
sudo mv /bin/sh.dash /bin/sh
মনে রাখবেন যে sh /bin/bash
আপনার ডিস্ট্রিবিউশনে ডিফল্টরূপে থাকলে, ড্যাশ-এ স্যুইচ করা স্ক্রিপ্টগুলি ব্যর্থ হতে পারে, কারণ ব্যাশের ড্যাশের চেয়ে আরও অনেকগুলি বৈশিষ্ট্য রয়েছে। বাশ স্ক্রিপ্টগুলি দিয়ে শুরু হওয়া উচিত #!/bin/bash
, এবং স্ক্রিপ্টগুলি দিয়ে শুরু করা #!/bin/sh
উচিত ব্যাশ-নির্দিষ্ট বৈশিষ্ট্য ব্যবহার করা উচিত নয়, তবে ব্যাশ সহ যে ডিস্ট্রিবিউশনগুলি সেই বিতরণে সুনির্দিষ্ট স্ক্রিপ্টগুলিতে /bin/sh
ব্যাশ-নির্দিষ্ট বৈশিষ্ট্যগুলি ব্যবহার করতে পারে #!/bin/sh
(এটি ঠিক আছে যতক্ষণ না ব্যবহারকারীদের কোনও প্রত্যাশা নেই ড্যাশ হিসাবে স্যুইচ করতে পারে /bin/sh
এবং এই স্ক্রিপ্টগুলি অন্য বিতরণে কাজ করে এমন কোনও প্রত্যাশা নেই।
==
হওয়া উচিত=
। এটি, এবং যে পরিবর্তনশীল বিস্তৃতি ডাবল উদ্ধৃত করা উচিত।