সময়ের আউটপুট বিন্যাস কেন আমি এটি কল করি তার উপরে নির্ভর করে


14

এটি কোনও নবজাতকের প্রশ্ন হতে পারে, তবে কীভাবে এটি কনফিগার করা হয়েছে এবং কেন timeএই দুটি ক্ষেত্রে কমান্ডের আউটপুট ফর্ম্যাট আলাদা তা আমি বুঝতে পারি না :

যদি এর মাধ্যমে ব্যবহার করা হয় timeতবে আউটপুটটি মূল তথ্য সহ তিনটি সারি

$ time sleep 1

real    0m1.003s
user    0m0.000s
sys     0m0.000s

তাহলে আমি পরীক্ষা করতে পারি কোন বাইনারি ব্যবহার করা হয়েছে

$ which time
/usr/bin/time

এবং আরও অনেক তথ্যের সাথে সম্পূর্ণ ভিন্ন ফর্ম্যাটে আউটপুট পেতে সরাসরি কল করুন

$ /usr/bin/time sleep 1
0.00user 0.00system 0:01.00elapsed 0%CPU (0avgtext+0avgdata 2000maxresident)k
0inputs+0outputs (0major+77minor)pagefaults 0swaps

সম্পর্কিত কোন এলিয়াস নেই time

$ alias | grep time
$ 

আমি দৌড়াচ্ছি Ubuntu 16.04


যে কারণে whichমূলত অকেজো ...
বাকুরিউ

উত্তর:


23

প্রথমটি হ'ল bashনিজস্ব বিল্টিন কীওয়ার্ড time(সংকলিত bash) এবং দ্বিতীয়টি হ'ল বহিরাগত নির্বাহযোগ্য time( /usr/bin/time, timeপ্যাকেজটি নিয়ে আসে )।

এছাড়াও, whichশেলের বিল্টিন কমান্ড বা কীওয়ার্ডগুলি কেবল এটির মাধ্যমে অনুসন্ধান PATHকরতে পারে না, আপনাকে এটির জন্য ব্যবহার করতে হবে type। একটি শেল নিজেই typeঅন্তর্নির্মিত হওয়ায় শেলের অভ্যন্তরীণ সত্ত্বা (এবং এছাড়াও PATH) পরীক্ষা করতে পারে, যাতে আপনি এই পার্থক্যটি চিহ্নিত করতে পারেন:

type -a time

এখানে:

$ type -a time
time is a shell keyword
time is /usr/bin/time

প্রথমটি কার্যকর করা হবে যদি আপনি কেবল ব্যবহার করেন time। আপনি কেবল যা ব্যবহার করে type(ছাড়া -a) প্রয়োগ করা হচ্ছে তা পেতে পারেন :

type time

-aবলে typeশেল অভ্যন্তরীণ সত্ত্বা অনুসন্ধান করতে এবংPATH অনুসন্ধান করতে এবং সমস্ত সম্ভাব্য উত্সে

যদি কোনও কারণে আপনার বাহ্যিক প্রয়োজন হয় তবে যে কোনও একটি ব্যবহার করুন:

\time
"time"
'time'
command time

আহ, আমি দেখছি, তাই whichবিল্টিনগুলি বিবেচনা করে না? এবং আমার সর্বদা type -aপ্রথম দিয়ে চেক করা উচিত । আসলে, মনে হয় typeশ্রেয় whichকারণ এটি অবস্থান আউটপুট /usr/bin/timeহিসাবে ভাল
xaxa

@ এক্সএক্সা হ্যাঁ, আমার সম্পাদনাগুলি পরীক্ষা করুন।
হিমেইল

বিস্তারিত উত্তরের জন্য ধন্যবাদ! তাহলে কি whichদরকারী?
xaxa

1
@ xaxa typeআসলে উচ্চতর --- আপনি যদি ব্যাশ ব্যবহার করছেন। অন্য শেলের মধ্যে typeবুলিটিন বা বিল্টিন নাও থাকতে পারে time
jpaugh

2
পছন্দ করেছেন পসিক্স timeকেবল বাহ্যিক হতে দেয় তবে তা নয় type, type সমস্ত পসিক্স অনুগত শেলগুলিতে উপলব্ধ।
হেইমাইল

4

অন্তর্নির্মিত এবং বাহ্যিক ইউটিলিটিগুলির মধ্যে আরেকটি পার্থক্য হ'ল, বাশের বিল্টিন time সম্পূর্ণ পাইপলাইনগুলি বা শেল ফাংশনগুলিতে কল করার জন্য সময় দেবে (দৃশ্যত এমনকি লুপগুলি, কিন্তু ম্যানুয়ালটি এটি প্রতিশ্রুতি বলে মনে হয় না)। বহিরাগত timeশেল বাইরে থাকায় পার্শ্ববর্তী কোড সম্পর্কে জানে না।

bash$ time echo blah | sleep 3
real    0m3.002s
...
bash$ /usr/bin/time echo blah | sleep 3
0.00user 0.00system 0:00.00elapsed ?%CPU 
...
bash$ time for x in 1 2 3 ; do sleep 1 ; done
real    0m3.006s
...

সময়টি স্ট্যান্ডার্ডে নির্দিষ্ট করার সময় এটি কীভাবে পাইপলাইনে কাজ করা উচিত তা অনির্ধারিত রেখে গেছে, সুতরাং এর চেয়ে আরও শক্তিশালী অভ্যন্তরীণ বাস্তবায়ন সম্ভব।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.