ব্যবহারে "$@"
সমস্ত আর্গুমেন্ট পাস হবে cd
যেখানে $1
কেবল প্রথম যুক্তিই পাস করবে।
আপনার উদাহরণে
$ . cdtest.sh "r st"
আপনি কেবল একটি যুক্তিতে পাস করার সাথে সর্বদা কাজ করে তবে আপনি যদি কোনও পতাকাতে যেমন পাস করেন তবে
$ . cdtest.sh -L "r st"
তারপরে কেবল "$@"
সঠিকভাবে কার্যকর করা "$1"
হবে যেখানে cd -L
ডিরেক্টরিটি পুরোপুরি হারাতে প্রসারিত হবে ।
যাহোক
$ . cdtest.sh r st
উভয় ক্ষেত্রেই ব্যর্থ হয় যেহেতু আপনি দুটি পরামিতি সিডিতে পাস করছেন, r
এবং st
এটি সিডি কার্যকর করার কোনও বৈধ উপায় নয়। প্যারামিটারগুলি ফাঁকা জায়গাগুলি দ্বারা পৃথক করা হয় যা অবশ্যই আপনার r\ st
যুক্তি হিসাবে বিবেচনা করতে (আপনার প্রথম উদাহরণ হিসাবে) উদ্ধৃত হতে হবে বা পালিয়ে যাওয়া ( ) হওয়া উচিত।
সিডির ক্ষেত্রে তবে পতাকাগুলিতে পাস হওয়া খুব অস্বাভাবিক এবং আপনি একাধিক ডিরেক্টরিতে পাস করতে পারবেন না যাতে আপনি কোনও সিডির জন্য "$1"
বা সত্যিকারের বিশ্ব ব্যবহারের পার্থক্য দেখতে পাবেন না "$@"
। তবে অন্যান্য কমান্ডের জন্য আপনি একটি পার্থক্য লক্ষ্য করতে পারেন তাই "$@"
আপনি যখন এই জাতীয় মোড়ক ফাংশন বা স্ক্রিপ্ট তৈরি করতে চান তখন সর্বদা ব্যবহার করা ভাল অনুশীলন ।
cd "$*"
1 টিরও বেশি আর্গ দিয়ে সঠিকভাবে কাজ করবে না।