দুটি ইউনিক্স পরিবেশ রয়েছে যা প্রতিটি ইউনিক্স-এর মতো অপারেটিং সিস্টেমে পাওয়া যায়, সেগুলি টুরিং-সম্পূর্ণ এবং অন্যান্য প্রোগ্রামগুলি কল করতে সক্ষম: আর্ক , এবং শ , বোর্ন / পসিক্স শেল পরিবার। এডাব্লুকে টেক্সট প্রসেসিংয়ের দিকে লক্ষ্য করা যায় (এটি আরও বিশেষায়িত ইউটিলিটিগুলি পরিপূরক করে), যখন প্রোগ্রামগুলি একসাথে রাখার জন্য আঠালো ভাষা হওয়ার দিকে অভিমুখী হয়। Sh হয় লিনাক্স এবং ইউনিক্স বিশ্ব জুড়ে সার্বজনীন স্ক্রিপ্টিং ভাষা।
POSIX মান SH নিজেই এবং সংশ্লিষ্ট ইউটিলিটি বাধ্যতামূলক বৈশিষ্ট্য সংজ্ঞায়িত করে। বেশিরভাগ ইউনিক্সের মতো সিস্টেমগুলি POSIX 1003.1-2004 (ওরফে একক ইউনিক্স ভি 3, ওরফে ওপেন গ্রুপ বেস স্পেসিফিকেশন ইস্যু 6) মেনে চলে; এই স্ট্যান্ডার্ডটির সর্বশেষতম সংস্করণটি হ'ল পসিএক্স 1003.1-2008 (ওরফে সিঙ্গেল ইউনিক্স ভি 4, ওরফে ওপেন গ্রুপ বেস স্পেসিফিকেশন ইস্যু 7)।
প্রতিটি লিনাক্স এবং ইউনিক্স বা ইউনিক্স-মতো সিস্টেমের পথে বোর্ন-স্টাইলের শেল থাকে /bin/sh
এবং কোনও অ-অ্যান্টিক সিস্টেমে একটি পসিক্স-কমপ্লায়েন্ট শেল থাকে (মাঝে মাঝে বাগ বাদে)। প্রতিটি আধুনিক ইউনিক্স-মতো সিস্টেম (লিনাক্স সহ) শেবাংগুলিকে সমর্থন করে , তাই এটি /bin/sh
যদি প্রথম লাইন হয় তবে এটি স্বয়ংক্রিয়ভাবে স্ক্রিপ্টগুলি চালায় #!/bin/sh
। সেখানে পসিক্স সিস্টেম রয়েছে যেখানে sh
অন্য কোনও জায়গায় অবস্থিত (সাধারণত ওএসএসে এমুলেশন স্তরগুলি আপনি সত্যই ইউনিক্সের মতো বলে ভাবেন না)।
এম্বেডড লিনাক্স সিস্টেমে স্ট্রিপড ডাউন ব্যাসিবক্স সিস্টেম থাকতে পারে যা সমস্ত পসিক্স বৈশিষ্ট্য প্রয়োগ করে না। ব্যস্তবক্সের ছোট-পদাঙ্ক সিস্টেমগুলিকে সংযুক্ত করার জন্য প্রচুর সংকলন-সময় বিকল্প রয়েছে, তাই আগে থেকে কী প্রত্যাশা করা যায় তা জানা মুশকিল, আপনাকে কোনও নির্দিষ্ট ডিভাইসে আপনার স্ক্রিপ্টগুলি তৈরি করতে হবে। ব্যাসিবক্স হ'ল sh এবং মিশ্রিত ইউটিলিটিগুলির সর্বাধিক সাধারণ ছোট-পায়ের ছাপ বাস্তবায়ন; আপনি যেটির মুখোমুখি হতে পারেন তা হ'ল অ্যান্ড্রয়েডের অত্যন্ত হ্রাস শেল পরিবেশ (পরবর্তী সংস্করণগুলি রক্তাল্পতাযুক্ত)।
অ এমবেডেড লিনাক্স সিস্টেম প্রায় সবসময় পারেন আছে ড্যাশ বা ব্যাশ যেমন /bin/sh
। ড্যাশ একটি ছোট এবং দ্রুত শেল যা POSIX বৈশিষ্ট্যগুলির চেয়ে সামান্য বেশি প্রয়োগ করে। বাশ আরও বেশি বৈশিষ্ট্যযুক্ত একটি বৃহত শেল।
নন-এম্বেড থাকা লিনাক্স সিস্টেমে প্রায়শই বাশ হিসাবে ইনস্টল করা থাকে /bin/bash
। সুতরাং, এম্বেড থাকা লিনাক্স সিস্টেমে বহনযোগ্যতার জন্য, আপনি ধরে নিতে পারেন যে ব্যাশ উপলব্ধ available ব্যাশের দরকারী অতিরিক্ত বৈশিষ্ট্যগুলির মধ্যে রয়েছে অ্যারে, ডট ফাইলগুলি সুবিধামতভাবে মোকাবেলা করার ক্ষমতা, pipestatus
একটি পাইপলাইনে সমস্ত কমান্ডের রিটার্নের স্থিতি অর্জনের পরিবর্তনশীল, ফাইল সময়ের জন্য অতিরিক্ত তুলনা অপারেটর এবং (সাম্প্রতিক সংস্করণগুলিতে) নিয়মিত এক্সপ্রেশন ম্যাচিং ।
শেল প্রোগ্রামিংয়ের অন্যতম বৈশিষ্ট্য হ'ল আপনি কেবল sh
প্রোগ্রামটি ব্যবহার করছেন না , আপনি বেশ কয়েকটি ইউটিলিটিও ব্যবহার করছেন । লিনাক্সের বেশিরভাগ ফাইল ম্যানিপুলেশন এবং পাঠ্য প্রক্রিয়াকরণ ইউটিলিটিগুলি হ'ল জিএনইউ কোর্টিলস (এমবেডেড সিস্টেমে, তারা সাধারণত ব্যাসিবক্স থেকে আসে)।
আপনার যদি লিনাক্সের বাইরে বহনযোগ্যতা দরকার তবে আপনার সেরা বেটটি হ'ল পসিক্সে লেগে থাকা। অন্যান্য ইউনিক্স ভেরিয়েন্টগুলিতে ব্যাশ ইনস্টল নাও থাকতে পারে (ওএসএক্সে ব্যাশ স্ট্যান্ডার্ড ইনস্টলসের অংশ, তবে * বিএসডি এবং বেশিরভাগ বাণিজ্যিক ইউনিাইজে একটি alচ্ছিক প্যাকেজ)। লিনাক্স এবং ওএসএক্স ব্যতীত প্রায় সকল ইউনিক্স রূপের (যেমন * বিএসডি এবং বাণিজ্যিক যোগাযোগসমূহ) কমপক্ষে পিডিএক্সএইচ , কার্ন শেলের কিছু সংস্করণ রয়েছে । বাশের সুবিধামত এক্সটেনশানগুলির বেশিরভাগই ksh থেকে, সুতরাং স্ক্রিপ্টগুলি উভয়ের অধীনে চলতে পারে তবে এটি বাশ বা ksh কোন অজানা সিস্টেমে অবস্থিত তা সনাক্ত করা কিছুটা ব্যথা হতে পারে।
শেলটি সব করতে পারে না। আপনার যদি আরও পরিশীলিত ভাষার প্রয়োজন হয় তবে আরও দুটি সাধারণ পছন্দ হ'ল পার্ল এবং পাইথন (অন্য কোনও কিছুই ইউনিক্স স্ক্রিপ্টিং ভাষা হিসাবে অনেক পিছনে)। পার্ল হ'ল traditionalতিহ্যবাহী স্ক্রিপ্টিং ভাষা, এবং কয়েকটি অ-এমবেডেড লিনাক্স সিস্টেমের অভাব রয়েছে, তবে পাইথন গ্রাউন্ড অর্জন করছে (উবুন্টুর জন্য প্রস্তাবিত স্ক্রিপ্টিং ভাষা হয়ে কিছু অংশে বৃদ্ধি পেয়েছে)। নন-লিনাক্স বিশ্বে পার্ল ওএসএক্স এবং ওপেনবিএসডি-তে বেস ইনস্টলের অংশ; এটি alচ্ছিক তবে খুব সাধারণভাবে ফ্রিবিএসডি-তে ইনস্টলড এবং alচ্ছিক তবে প্রায়শই নেটবিএসডি-তে ইনস্টল করা হয়।
sh
।