sh এর অর্থ বোর্ন শেল বা / বিন / শ, যা বেশিরভাগ আধুনিক প্ল্যাটফর্মের কিছু অন্য (পসিএক্স-কনফর্মেন্ট) শেল হতে পারে। "পসিক্স শেল" হ'ল পসিক্স দ্বারা সংজ্ঞায়িত বিমূর্ত শেল , যা পশিক্স মোডে বাশ বা ডিফল্টরূপে ksh বা ড্যাশ দ্বারা প্রয়োগ করা হয়। / বিন / শ কে কখনও কখনও পসিক্স শেলও বলা হয়, কারণ এটি একটি শেল যা বেশিরভাগ প্ল্যাটফর্মের মধ্যে পসিক্সের সাথে সঙ্গতিপূর্ণ হয়। আসল বোর্ন শেলগুলি পসিক্স শেল নয়।
বাশরেফের বাশ এবং বোর্ন শেলগুলির মধ্যে পার্থক্যের একটি তালিকা রয়েছে । পশিক্স মোডে ব্যাশ চালু হওয়ার সময় পরিবর্তনেরman bash
একটি তালিকা রয়েছে ।
/ বিন / শ ওএস এক্স-এ কোনও সিমিলিংক বা হার্ড লিঙ্ক নয়, তবে এটি প্রায় / বিন / বাশের মতো আকার:
$ ls -li /bin/{ba,}sh
29631757 -r-xr-xr-x 1 root wheel 1333920 Jul 26 01:52 /bin/bash
29631758 -r-xr-xr-x 1 root wheel 1334000 Jul 26 01:52 /bin/sh
ম্যান বাশ :
যদি শ নামের সাথে বাশটি প্রেরণ করা হয় তবে এটি পসিক্স স্ট্যান্ডার্ডের সাথে সামঞ্জস্য রেখে যতটা সম্ভব নিবিড়ভাবে ofতিহাসিক সংস্করণের শুরুর আচরণটি নকল করার চেষ্টা করে।
বোর্ন শেলগুলির নকল করা অন্যথায় বেশ সীমাবদ্ধ। bash +B
(বোর্ন) আসলে বন্ধনী সম্প্রসারণের মতো বৈশিষ্ট্যগুলিকে অক্ষম করে।
$ sh
$ echo {a,b}
a b
$ echo $BASH_VERSION
3.2.48(1)-release
$ bash +B
$ echo {a,b}
{a,b}
তবে আপনি পসিএক্স মোড অক্ষম করলেও প্রতিধ্বনি echo -e
ডিফল্টরূপে আচরণ করে:
$ sh
$ shopt -uo posix
$ echo '1\b2'
2
/ বিন / শ উবুন্টুতে ড্যাশ , তাই কিছু বাশিম ওএস এক্স-তে / বিন / শ দিয়ে কাজ করে তবে উবুন্টু নয়।
আপনি যদি আসল বোর্ন শেলগুলির জন্য (যেমন কিছু) স্ক্রিপ্ট লিখতে চান তবে আপনি #!/usr/bin/env bash +B
পরিবর্তে এটি ব্যবহার করতে পারেন ।
আমি মনে করি যে প্যাসিক্স স্পেসিফিকেশন বা বোর্ন শেলগুলির অংশ নয় বা অন্যান্য শেলগুলির সাথে সমস্ত কিছু পরীক্ষা করে এমন বৈশিষ্ট্যগুলি এড়ানোর চেয়ে বাশের জন্য স্ক্রিপ্টগুলি লেখা আরও সহজ।
sh
এবংbash
): http://en.wikipedia.org/wiki/Comparison_of_command_shells