অটটুলগুলি থেকে একটি কিউ নিন: বোর্ন এবং পসিক্স শেলের সর্বনিম্ন সাধারণ ডিনোমিনেটরটির সাথে লেগে থাকুন - সম্ভবত এটির দ্বারা বাড়ানো হয়েছে sed
- যদি আপনাকে এমন কিছু লিখতে হয় যা অবশ্যই সর্বত্র কাজ করে । এমন কিছু সিস্টেম থাকতে পারে যেখানে কিছু ভেঙ্গে যায় তবে আপনি পুনরায় লিখে এই জাতীয় সমস্যাগুলি নিয়ে কাজ করতে পারেন।
উদাহরণস্বরূপ, কিছু প্রাচীন সিস্টেমে বিস্তৃত ত্রুটিগুলিতে সমস্যা আছে test
, ওরফে [
:
if [ $foo = bar ] ; then...
সুতরাং অটোকনফ অনুশীলনটি হ'ল একক অক্ষর উপসর্গ সহ ডাবল কোটে আবার লিখতে হবে :
if [ x"$foo" = "xbar" ] ; then...
আপনি "x$foo"
এখানে ব্যবহার করতে পারেন । এই সম্ভাবনার বিরুদ্ধে এই রক্ষীরা যেটি $foo
বৈধ বিকল্প হতে পারে test(1)
এবং যেহেতু [
এটি একটি উপনাম test
, এটি প্রকাশের ভুল ব্যাখ্যা করতে পারে। সমাধানটি এমন একটি পরিস্থিতি স্থাপন করা হয় যেখানে অজানা যুক্তিটি [
সর্বদা শুরু হয় x
, যার অর্থ এটির বিশেষ অর্থ হতে পারে না [
।
(অটোকনফ এর test
পরিবর্তে ব্যবহারেরও [
পরামর্শ দেয় তবে এম 4 এর সাথে সম্ভাব্য দ্বন্দ্বের প্রতিক্রিয়া হিসাবে সেই পরামর্শ আসে যা [
এর বাক্য গঠনতেও ব্যবহার করে ))
awk হল পসিক্স , সুতরাং তাত্ত্বিকভাবে এটি সর্বত্র পাওয়া যায়। এটি এমনকি ব্যাসিবক্সেও রয়েছে তাই আপনার awk
খুব কার্যকর কিছু সীমাবদ্ধ এম্বেডড লিনাক্স সিস্টেমে একটি বাস্তবায়ন হবে । তবুও, আমি awk
ব্যতীত কোনও সিস্টেম জুড়ে এসে অবাক হব sed
। আমি মনে করি এটি জটিলতায় নেমে এসেছে: সহজ সরঞ্জামগুলি আক্রমণাত্মক ট্রিজেজ থেকে বেঁচে থাকার সম্ভাবনা বেশি।
পার্ল কোনও বিস্তৃত স্ট্যান্ডার্ড, পসিক্স বা অন্যথায় অংশ নয়, তাই আপনি যদি লক্ষ্য পরিবেশ সম্পর্কে আগাম কিছু না জানেন তবে আপনি কেবল এটির উপর নির্ভর করতে পারবেন না। পার্ল এতে ডিফল্টরূপে ইনস্টল করা হয় না:
- Cygwin
- ফ্রিবিএসডি এবং নেটবিএসডি
- স্ল্যাকওয়্যার সহ কিছু লিনাক্সের জন্য "ন্যূনতম" ইনস্টল করা হয়
- অনেক এম্বেড থাকা লিনাক্স যা তাদের ব্যবহারের ভূমির জন্য মূলত ব্যাসিবক্সে নির্ভর করে
অটোকনফ ম্যানুয়ালটিতে পোর্টেবল শেল প্রোগ্রামিংয়ের একটি অধ্যায় রয়েছে যা আপনার পক্ষে সহায়ক হবে। শেষ অধ্যায় কভার সরঞ্জামের মত sed
, awk
, এবং অনেক অন্যদের।