আমি একটি শেল ফাংশন সংজ্ঞায়িত করেছি (আসুন এটি কল করুন clock
), যা আমি অন্য কমান্ডের মোড়ক হিসাবে ব্যবহার করতে চাই time
, যেমন ফাংশনের অনুরূপ , যেমন clock ls -R
।
আমার শেল ফাংশন কিছু কাজ সম্পাদন করে এবং এরপরে শেষ হয় exec "$@"
।
আমি এই ফাংশনটি শেল বিল্ট-ইনগুলির সাথেও কাজ করাতে চাই, উদাহরণস্বরূপ বিল্ট-ইন- clock time ls -R
এর ফলাফল আউটপুট করা উচিত time
, এবং /usr/bin/time
সম্পাদনযোগ্য নয় not তবে exec
সর্বদা এর পরিবর্তে কমান্ডটি চালানো শেষ হয়।
আমি কীভাবে আমার বাশ ফাংশনটিকে মোড়ক হিসাবে কাজ করতে পারি যা শেল বিল্ট-ইনগুলি তর্ক হিসাবেও গ্রহণ করে?
সম্পাদনা : আমি কেবল শিখেছি যে time
কোনও অন্তর্নির্মিত বাশ নয়, তবে পাইপলাইনগুলির সাথে সম্পর্কিত একটি বিশেষ সংরক্ষিত শব্দ । আমি বিল্ট-ইনগুলির সাথে কাজ না করা সত্ত্বেও কোনও সমাধানে আগ্রহী time
, তবে আরও সাধারণ সমাধান আরও ভাল।
exec bash -c \' "$@" \'
। প্রথম প্যারামিটারে আপনার কমান্ড শেল স্ক্রিপ্ট হিসাবে স্বীকৃত না হলে এটি সরাসরি চালিত বাইনারি হিসাবে ব্যাখ্যা করা হবে। বিকল্পভাবে এবং আরও সহজভাবে, কেবল আপনার আসল শেলটি থেকে মিস করুনexec
এবং কল করুন"@"
।