আপনার কেবল কখনও ব্যবহার করা উচিত #! /bin/sh
।
শেল স্ক্রিপ্টে আপনার কখনও বাশ (বা zsh, বা মাছ, বা ...) এক্সটেনশন ব্যবহার করা উচিত নয়।
আপনার কেবল শেল স্ক্রিপ্টগুলি কখনই লিখতে হবে যা শেল ভাষার যে কোনও বাস্তবায়নের সাথে কাজ করে (শেল নিজেই পাশাপাশি চলমান সমস্ত "ইউটিলিটি" প্রোগ্রাম সহ)। এই দিনগুলিতে আপনি সম্ভবত পসিক্স ১.২-২০০১ ( -2008 নয় ) কীভাবে শেল এবং ইউটিলিটিগুলি সক্ষম সেটির জন্য প্রামাণিক হিসাবে নিতে পারেন , তবে সচেতন থাকুন যে একদিন আপনার লিপিটি কোনও উত্তরাধিকার ব্যবস্থায় পোর্ট করার আহ্বান জানানো যেতে পারে (উদাঃ সোলারিস) বা এআইএক্স) যার শেল এবং ইউটিলিটিগুলি 1992 এর প্রচলিত জমাট ছিল।
কি, সিরিয়াসলি?!
হ্যাঁ গম্ভীরভাবে.
এই জিনিসটি এখানে: শেল একটি ভয়ানক প্রোগ্রামিং ভাষা। এটি কেবল একমাত্র বিষয়টির জন্য যাচ্ছিল তা হ'ল /bin/sh
একমাত্র এবং একমাত্র স্ক্রিপ্ট দোভাষী যা প্রতিটি ইউনিক্সের ইনস্টলেশন নিশ্চয়তার সাথে থাকে।
এখানে অন্যান্য জিনিস আছে: কোর পার্ল 5 ব্যাখ্যাকারী (এর মধ্যে পুনরাবৃত্তির /usr/bin/perl
) হল আরো একটি এলোমেলোভাবে নির্বাচিত ইউনিক্স ইনস্টলেশনের উপর উপলব্ধ হতে চেয়ে সম্ভবত (/(usr|opt)(/(local|sfw|pkg)?)?/bin/bash
নেই। অন্যান্য ভাল স্ক্রিপ্টিং ভাষা (পাইথন, রুবি, নোড.জেএস, ইত্যাদি) - আমি এমনকি শেলের সাথে তুলনা করার সময় পিএইচপি এবং টিসিএলকে সেই বিভাগে অন্তর্ভুক্ত করব) বাশ এবং অন্যান্য বর্ধিত শেল হিসাবে প্রায় উপলব্ধ।
অতএব, যদি আপনার কাছে ব্যাশ স্ক্রিপ্ট লেখার বিকল্প থাকে তবে আপনার কাছে এমন একটি প্রোগ্রামিং ভাষা ব্যবহারের বিকল্প রয়েছে যা ভয়ঙ্কর নয়,
এখন সিম্পল শেল স্ক্রিপ্টস, ক্রোন জব বা অন্য কোনও কিছু থেকে ক্রমানুসারে কয়েকটি প্রোগ্রাম চালিত ধরণের, এগুলি শেল স্ক্রিপ্ট হিসাবে ছেড়ে দেওয়ার কোনও সমস্যা নেই। তবে সাধারণ শেল স্ক্রিপ্টগুলির জন্য অ্যারে বা ফাংশন বা [[
এমনকি প্রয়োজন হয় না । এবং আপনার কেবলমাত্র জটিল শেল স্ক্রিপ্টগুলি লেখা উচিত যখন আপনার অন্য কোনও পছন্দ না থাকে। উদাহরণস্বরূপ, অটোকনফ স্ক্রিপ্টগুলি এখনও সঠিকভাবে শেল স্ক্রিপ্টগুলি। তবে এই স্ক্রিপ্টগুলি প্রোগ্রামটি কনফিগার করার সাথে সম্পর্কিত প্রতিটি অবতারে চলতে হবে /bin/sh
। এবং এর অর্থ তারা কোনও এক্সটেনশন ব্যবহার করতে পারে না। এই দিনগুলিতে আপনাকে সম্ভবত পুরানো মালিকানাধীন ইউনিক্সগুলি সম্পর্কে যত্ন নেওয়ার দরকার নেই, তবে আপনার সম্ভবত বর্তমান ওপেন সোর্স বিএসডিগুলির যত্ন নেওয়া উচিত , যার কয়েকটি ইনস্টল করে নাbash
ডিফল্টরূপে এবং এম্বেড করা পরিবেশ যা আপনাকে কেবলমাত্র একটি সর্বনিম্ন শেল দেয় এবং busybox
।
উপসংহারে, যে মুহুর্তে আপনি নিজেকে এমন কোনও বৈশিষ্ট্য চেয়েছিলেন যা পোর্টেবল শেল ল্যাঙ্গুয়েজে উপলভ্য নয়, এটি একটি চিহ্ন যে স্ক্রিপ্টটি শেল স্ক্রিপ্টে থাকার জন্য খুব জটিল হয়ে উঠেছে। পরিবর্তে এটি আরও ভাল ভাষায় পুনর্লিখন করুন।
bash
ফাংশন এবং সিনট্যাক্সের চেয়েsh
ফাংশন এবং সিনট্যাক্স ব্যবহার করছেন।