ব্যাকস্ল্যাশ ওরফে প্রসারকে দমন করবে, অর্থাত্ এটি মূল কমান্ডটি কার্যকর করে এবং নিশ্চিত করে যে উলেফ সংস্করণটি চলবে না। সিস্টেমটি shopt -s expand_aliases
(কেবলমাত্র BASH) সেট করার পরে বা এটি ব্যবহার করে কার্যকর করা হলে স্ক্রিপ্টগুলি অজান্তে ওরফে প্রসার দিয়ে চালানো যেতে পারে source
।
./conda.sh # usually no alias expansion (unless `shopt -s expand_aliases` in BASH)
source ./conda.sh # alias expansion
. ./conda.sh # alias expansion
কিছু সিসাডমিনগুলি এলিয়াসের পার্শ্ব-প্রতিক্রিয়াগুলির বিরুদ্ধে প্রতিরোধমূলক ব্যবস্থা হিসাবে সবকিছুতে ব্যাকস্ল্যাশ রাখতে পছন্দ করে, কেবল যদি অন্য কোনও জায়গায় অনিচ্ছাকৃতভাবে এটি অন্যরকমভাবে করা হয় এবং পূর্বে বর্ণিত হিসাবে উপনামটি প্রসারিত হয়। উদাহরণস্বরূপ, যদি সিস্টেমটি এটি alias dirname='dirname -z'
অন্য কোথাও সেট করেছে এবং শর্তটি উপন্যাসটি প্রসারিত করার অনুমতি দেয়, তবে দুর্ভাগ্যক্রমে যে স্ক্রিপ্টটি ডায়ারনেম বলার চেষ্টা করে তা কল করবে dirname -z
, যা স্ক্রিপ্টের উদ্দেশ্য নয়।
যদি নিশ্চিত হয়ে থাকে যে এইরূপের নাম নেই, তবে আমরা সমস্ত ব্যাকস্ল্যাশ সরিয়ে ফেলতে পারি এবং এটি ঠিকঠাক কাজ করা উচিত।
বিকল্পভাবে, অন্যটি command
দমন করতে ব্যাকস্ল্যাশ সংস্করণের পরিবর্তে কেউ ব্যবহার করতে পারে । সুতরাং, পরিবর্তে \dirname
, কেউ ব্যবহার করতে পারেন command dirname
, যা আরও পঠনযোগ্য বলে মনে হতে পারে। (অন্তর্নির্মিত কমান্ডগুলির মতো cd
, builtin
পরিবর্তে একটি ব্যবহার করা উচিত )। আমি এর পরিবর্তে এটি পছন্দ করি, কারণ এটি একই নামের পাশাপাশি কোনও উপাধিকেও বাইপাস করে।