में ksh
, bash
और zsh
, time
एक कमांड (बिलिन या नहीं) नहीं है, यह भाषा में आरक्षित शब्द है जैसे for
या while
।
इसका उपयोग पाइपलाइन 1 के समय के लिए किया जाता है ।
में:
time for i in 1 2; do cmd1 "$i"; done | cmd2 > redir
आपके पास विशेष सिंटैक्स है जो शेल को उस पाइप लाइन को चलाने के लिए कहता है:
for i in 1 2; do cmd1 "$i"; done | cmd2 > redir
और इसके लिए समय आँकड़ों की रिपोर्ट करें।
में:
time cmd > output 2> error
यह वही है, तो आप कर रहे हैं समयcmd > output 2> error
आदेश, और समय आंकड़े अभी भी खोल के stderr पर चलते हैं।
आप की जरूरत है:
{ time cmd > output 2> error; } 2> timing-output
या:
exec 3>&2 2> timing-output
time cmd > output 2> error 3>&-
exec 2>&3 3>&-
शेल के स्टडर के लिए timing-output
समय के निर्माण से पहले पुनर्निर्देशित किया जाना चाहिए (फिर से, कमांड नहीं ) का उपयोग किया जाता है (यहां समय के लिए cmd > output 2> error 3>&-
)।
आप उस time
निर्माण को एक उप- भाग में भी चला सकते हैं जिसमें उसका स्टैडर पुनर्निर्देशित है:
(time cmd > output 2> error) 2> timing-output
लेकिन यहां उप-धारा आवश्यक नहीं है, आपको केवल उस समय पुनर्निर्देशित होने के लिए stderr की आवश्यकता होती है जब time
निर्माण को लागू किया जाता है।
अधिकांश सिस्टम में एक time
कमांड भी है । आप time
कीवर्ड को अक्षम करके उसको लागू कर सकते हैं । आपको बस उस कीवर्ड को किसी भी तरह से उद्धृत करना होगा क्योंकि कीवर्ड केवल तभी पहचाने जाते हैं जैसे कि शाब्दिक।
'time' cmd > output 2> error-and-timing-output
लेकिन सावधान रहें प्रारूप भिन्न हो सकता है और दोनों का स्टाडर time
और cmd
विलीन हो जाएगा error-and-timing-output
।
इसके अलावा, निर्माण के time
विपरीत आदेश, time
समय पाइपलाइनों या यौगिक आदेशों या कार्यों या शेल बिल्डिंस नहीं कर सकता ...
यदि यह एक अंतर्निहित कमांड था, तो यह समय पर इनवोकेशन या बिल्डिंस को कार्य करने में सक्षम हो सकता है, लेकिन यह समय पुनर्निर्देशन या पाइपलाइन या कंपाउंड कमांड नहीं कर सकता है।
1 ध्यान दें कि bash
(क्या माना जा सकता है) एक बग जिससे time (cmd) 2> file
(लेकिन time cmd | (cmd2) 2> file
उदाहरण के लिए नहीं ) समय आउटपुट को पुनर्निर्देशित करता हैfile
time
शेल कीवर्ड, या के आधार पर अलग-अलग होंगे/usr/bin/time
। यहां शामिल किए गए विवरणकर्ताओं के कई सेट हो सकते हैं (शेल का, औरtime
प्रक्रिया से जुड़े लोग )। और चलो()
उपधारा द्वारा निहित के बारे में मत भूलना । ( बैश विशेषज्ञ की प्रतीक्षा में : p)