শেল কমান্ডের কার্যকর সময়টি নিম্নলিখিত সংমিশ্রণ সহ মুদ্রণ করা সম্ভব?
root@hostname:~# "command to execute" && echo "execution time"
উত্তর:
ভুলে যাবেন না যে বাশের বিল্টিনের মধ্যে পার্থক্য রয়েছে time
(যা করার সময় আপনাকে ডিফল্টরূপে ডাকা উচিত time command
) এবং /usr/bin/time
(যার জন্য এটির পুরো পথে আপনাকে কল করতে হবে)।
বিল্টিন time
সর্বদা স্টডারারে প্রিন্ট করে তবে /usr/bin/time
আপনাকে নির্দিষ্ট ফাইলটিতে সময়ের আউটপুট প্রেরণ করতে দেয়, তাই আপনি এক্সিকিউটড কমান্ডের স্টডার স্ট্রিমের সাথে হস্তক্ষেপ করবেন না। এছাড়াও, /usr/bin/time
এর বিন্যাসটি কমান্ড লাইনে বা এনভায়রনমেন্ট ভেরিয়েবলের দ্বারা কনফিগারযোগ্য TIME
, যেখানে বাশের বিল্টিন time
বিন্যাসটি শুধুমাত্রTIMEFORMAT
পরিবেশ পরিবর্তনশীল দ্বারা কনফিগার করা হয়েছে ।
$ time factor 1234567889234567891 # builtin
1234567889234567891: 142662263 8653780357
real 0m3.194s
user 0m1.596s
sys 0m0.004s
$ /usr/bin/time factor 1234567889234567891
1234567889234567891: 142662263 8653780357
1.54user 0.00system 0:02.69elapsed 57%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+215minor)pagefaults 0swaps
$ /usr/bin/time -o timed factor 1234567889234567891 # log to file `timed`
1234567889234567891: 142662263 8653780357
$ cat timed
1.56user 0.02system 0:02.49elapsed 63%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+217minor)pagefaults 0swaps
help time
কারণ আমি কেবল এটির দিকে চেয়েছিলাম এবং আমি ভেবেছিলাম এটি একটি কমান্ড লাইনের যুক্তি। আমি উত্তর আপডেট করব।
time
বেশিরভাগ শেলের মধ্যে একটি অন্তর্নির্মিত কমান্ড যা টিটিআইকে কার্যকর করার সময় তথ্য লিখে।
আপনিও এরকম কিছু চেষ্টা করতে পারেন
start_time=`date +%s`
<command-to-execute>
end_time=`date +%s`
echo execution time was `expr $end_time - $start_time` s.
বা এতে bash
:
start_time=`date +%s`
<command-to-execute> && echo run time is $(expr `date +%s` - $start_time) s
time
মিলিসেকেন্ড ব্যবহার করে। এবং যদি আপনি ভেরিয়েবল এবং গণনাগুলি ব্যবহার না করে একত্রে কয়েক মুখ্য কমান্ডের সময় কাটাতে চান তবে আপনি প্রথম বন্ধনী ব্যবহার করতে পারেন: time ( command1 ; command2 ; command3 )
আপনি এমনকি এগুলি পৃথকভাবে মোট সময়ের সাথেও করতে পারেন, যেমন: time ( time command1 ; time command2 ; time command3 )
অবশ্যই যদি আপনি বিশটি কমান্ড চান তবে এই উত্তরের সমাধানটি ব্যবহার করা আরও ভাল। তবে তারপরে আপনার কমান্ডগুলি সমস্ত স্ক্রিপ্টে রাখার চিন্তা করা উচিত ...
root@hostname:~# time [command]
এটি ব্যবহৃত আসল সময় এবং ব্যবহূত সিস্টেমের সময়ের মধ্যে পার্থক্য করে ishes
time
tty লিখেছেন, stderr না। যা আমি অনুমান করি বিষয়গুলি আরও খারাপ করে দেয়।
লাইন বাই লাইন ডেল্টা পরিমাপের জন্য, গনোনম ব্যবহার করে দেখুন ।
এটি একটি কমান্ড লাইন ইউটিলিটি, কিছুটা মুর্টিলের টিএস-এর মতো, অন্য কমান্ডের স্ট্যান্ডার্ড আউটপুটে টাইমস্ট্যাম্প তথ্য প্রিপেন্ড করতে। দীর্ঘ-চলমান প্রক্রিয়াগুলির জন্য দরকারী যেখানে আপনি এত দীর্ঘ সময় নিয়ে যাচ্ছেন তার একটি recordতিহাসিক রেকর্ড চাই।
জ্ঞোমনকে কোনও কিছুর পাইপ দেওয়া প্রতিটি লাইনের জন্য একটি টাইমস্ট্যাম্প তৈরি করে, এটি নির্দেশ করে যে সেই রেখাটি বাফারের শেষ লাইনটি কত দীর্ঘ ছিল - এটি পরবর্তী লাইনটি প্রদর্শিত হতে কতক্ষণ সময় নিয়েছিল। ডিফল্টরূপে, জ্ঞোমন প্রতিটি লাইনের মধ্যবর্তী সময় সেকেন্ডে প্রদর্শন করবে তবে তা কনফিগারযোগ্য।
যদি আমি একটি অনুলিপি বা হ্যাশের মতো দীর্ঘস্থায়ী প্রক্রিয়া শুরু করি এবং কতক্ষণ সময় লেগেছিল তা পরে জানতে চাই, আমি কেবল এটি করি:
$ date; sha1sum reallybigfile.txt; date
যার ফলে নিম্নলিখিত ফলাফলের ফলাফল হবে:
Tue Jun 2 21:16:03 PDT 2015
5089a8e475cc41b2672982f690e5221469390bc0 reallybigfile.txt
Tue Jun 2 21:33:54 PDT 2015
মঞ্জুর, এখানে প্রয়োগ হিসাবে এটি খুব সুনির্দিষ্ট নয় এবং অতিবাহিত সময় গণনা করে না। তবে এটি ময়লা সহজ এবং কখনও কখনও আপনার সমস্ত প্রয়োজন।
Zsh এ আপনি ব্যবহার করতে পারেন
=time ...
ব্যাশ বা zsh এ আপনি ব্যবহার করতে পারেন
command time ...
এগুলি (বিভিন্ন প্রক্রিয়া দ্বারা) একটি বাহ্যিক কমান্ড ব্যবহার করতে বাধ্য করে।
ঠিক ps -o etime= -p "<your_process_pid>"
man bash
: "TIMEFORMAT ভেরিয়েবলটি এমন ফর্ম্যাট স্ট্রিংয়ে সেট করা যেতে পারে যা টাইমিংয়ের তথ্যটি কীভাবে প্রদর্শিত হবে তা নির্দিষ্ট করে"