শেল স্ক্রিপ্টগুলিতে "BASH-isms" এড়ানো


37

পার্ল এর সমতুল্য কোনও সরঞ্জাম কি আছে: সমালোচক যা আপনার শেল স্ক্রিপ্টগুলি পরীক্ষা করে এবং ত্রুটিগুলি, বহনযোগ্যতার সমস্যাগুলি, ফ্যালব্যাকগুলি ব্যতীত মানহীন প্রোগ্রামগুলির ব্যবহার, অবমূল্যায়নযুক্ত প্রোগ্রামের ব্যবহার ইত্যাদি নির্দেশ করবে?

আমি বুঝতে পারি যে set -o posixনন-পসিক্স ব্যবহার নিষ্ক্রিয় করবে, তবে এটি আমাকে জানতে চাইবে না এমন বিষয়গুলি যেমন zsh ইনডেক্সিং শেল অ্যারেগুলি 1 থেকে শুরু হয় এবং বাশ, 0 থেকে এবং অ্যাশ মোটেও অ্যারে সমর্থন করে না।

উত্তর:


36

আছে checkbashisms । ডেবিয়ানে, এটি প্যাকেজ রক্ষণাবেক্ষণকারী সরঞ্জামগুলির অংশ হিসাবে প্রেরণ করা হয় ।

আপনার স্ক্রিপ্টগুলি ড্যাশ এবং পোশের অধীনে পরীক্ষা করুন । উভয়ের কয়েকটি অ-পসিক্স কনস্ট্রাক্টস রয়েছে তবে আপনার স্ক্রিপ্ট যদি উভয়টিতে কাজ করে তবে সম্ভবত এটি বেশিরভাগ জায়গায় কাজ করবে। (সাবধানতার সাথে যে সাধারণ শেল স্ক্রিপ্টগুলি পরীক্ষা করা বেশ কঠিন কারণ তাদের অনেকগুলি কর্নারের কেস থাকে))

যদি আপনি আপনার স্ক্রিপ্টগুলি এম্বেডড লিনাক্স প্ল্যাটফর্মগুলিতে পোর্টেবল হতে চান, তবে তাদের ব্যাসিবক্স দিয়ে পরীক্ষা করুন । নোট করুন যে ব্যাসিবক্স কম বা বেশি সীমাবদ্ধ হতে পারে, আপনি কতটা এম্বেড থাকা সিস্টেম চান তার উপর নির্ভর করে; কিছু ব্যাসিবক্স ইনস্টলেশন নেই এমন কোনও বৈশিষ্ট্যের উপর নির্ভর করে এমন স্ক্রিপ্টগুলি থাকা খুব স্বাভাবিক।

নোট করুন যে অ-বহনযোগ্যতা একা শেল থেকে আসে না, এটি বাহ্যিক ইউটিলিটি থেকেও আসে। ওপেনবিএসডি এবং সোলারিসের পসিক্স বৈশিষ্ট্যগুলির সাথে ইউটিলিটি রয়েছে এবং আরও বেশি কিছু নেই, তাই তারা বহনযোগ্যতার জন্য পরীক্ষার জন্য ভাল।

আপনি এই থ্রেডে বর্ণিত পসিক্স স্পেসিফিকেশন এবং অন্যান্য সংস্থানগুলিতে উল্লেখ করতে চাইবেন (বিশেষত অটোকনফ ম্যানুয়াল ); তবে এটি ডকুমেন্টেশন, আপনি দুর্ঘটনাক্রমে কোনও বৈশিষ্ট্য ব্যবহার করলে কোনও লাভ হয় না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.