man bash একক উদ্ধৃতি সম্পর্কে এটি দেয়
একক উদ্ধৃতিতে অক্ষরগুলি বদ্ধ করার সাথে উদ্ধৃতিগুলির মধ্যে প্রতিটি অক্ষরের আক্ষরিক মান সংরক্ষণ করা হয়। ব্যাকস্ল্যাশ এর আগেও, একক উদ্ধৃতিগুলির মধ্যে একক উদ্ধৃতি নাও উপস্থিত হতে পারে।
আপনি কমান্ড লাইনে যাই টাইপ করুন না কেন ব্যাশ এটি ব্যাখ্যা করে এবং তারপরে ফলাফলটি প্রোগ্রামে প্রেরণ করে যা এটি প্রেরণ করা হয়েছিল বলে মনে করা হয় this এই ক্ষেত্রে, আপনি যদি sed 's/$old_run/$new_run/'ব্যাশ ব্যবহার করেন , তবে প্রথমে ব্যাশটি দেখতে পাবে sed, এটি এটিকে $PATHভেরিয়েবলের মধ্যে একটি এক্সিকিউটেবল উপস্থিত হিসাবে স্বীকৃতি দেয় । sedএক্সিকিউটেবল একটি ইনপুট প্রয়োজন। বাশ ইনপুটটি সন্ধান করে এবং আবিষ্কার করে 's/$old_run/$new_run/'। একক উদ্ধৃতিগুলি বাশকে তাদের লিখিত সামগ্রীর ব্যাখ্যা না করার জন্য এবং তাদের যেমন আছে তেমন পাস করার জন্য বলেছে। সুতরাং, বাশ তারপরে সেডগুলিতে চলে যায়। শেড একটি ত্রুটি দেয় কারণ $কেবল লাইনের শেষে ঘটতে পারে।
পরিবর্তে যদি আমরা ডাবল উদ্ধৃতি ব্যবহার করি, অর্থাত্, "s/$old_run/$new_run/"তবে বাশ এটিকে দেখায় এবং $old_runএকটি পরিবর্তনশীল নাম হিসাবে ব্যাখ্যা করে এবং একটি বিকল্প তৈরি করে (এই ধাপটি পরিবর্তনশীল সম্প্রসারণ বলা হয়)। এটি প্রকৃতপক্ষে আমাদের যা প্রয়োজন।
তবে, আপনাকে দ্বিগুণ উদ্ধৃতি ব্যবহার করে যত্নবান হতে হবে কারণ, এগুলি প্রথমে ব্যাশ দ্বারা ব্যাখ্যা করা হয় এবং তারপরে সেডকে দেওয়া হয়। সুতরাং, `জাতীয় কিছু চিহ্ন ব্যবহার করার আগে তাদের অবশ্যই পালাতে হবে।