अब, जब मैं मेरा सवाल है, आउटपुट के रूप में केवल वास्तविक मूल्य कैसे प्राप्त करें? इस मामले में, , आप वैकल्पिक रूप से, आप समय ls का उपयोग करके, मेरे पास निम्न आउटपुट है:
$ समय एलएस-एल कुल 2 -आरडब्ल्यूएक्स ------ + 1 दोस्तों कोई नहीं 97 जून 23 08:59 स्थान-टी-आर-आर-आर-+ 1 दोस्तों कोई नहीं 10 जून 23 09:06 असली स्वागत 0m0.040s उपयोगकर्ता 0m0.000s sys 0m0.031s
grep केवल वास्तविक मूल्य रेखा की कोशिश करता हूं वास्तविक परिणाम है:
$ समय ls -l | Grep असली असली 0m0.040s उपयोगकर्ता 0m0.000s sys 0m0.031s
0m0.040s ।
समय इसकी आउटपुट को stderr लिखता है, इसलिए आपको stdout के बजाय पाइप स्टेडरर की जरूरत है। लेकिन यह भी याद रखना महत्वपूर्ण है कि
समय बैश के वाक्यविन्यास का हिस्सा है, और यह एक संपूर्ण पाइपलाइन का समय है। नतीजतन, आपको पाइप लाइन को ब्रेसिज़ में लपेट कर, या इसे एक सबशेल्ड में चलाने की आवश्यकता है:
$ {time ls -l & gt; / dev / null; } 2 & gt; और 1 | बैज v4.0 (संभवत: लिनक्स वितरण पर सार्वभौमिक लेकिन मैक ओएस एक्स पर मानक नहीं है) के साथ असली वास्तविक 0m0.005s
| & amp; पाइप दोनों
stdout और
stderr :
{समय ls -l & gt; / dev / null; } | & Amp; Grep real
समय उपयोगिता का उपयोग कर सकते हैं, जो आउटपुट स्वरूप का नियंत्रण देता है। मेरे सिस्टम पर, उस सुविधा को
/ usr / bin / time में पाया जाता है:
/ usr / bin / time -f% e ls -l & gt; / dev
समय उपयोगिता पर अधिक विवरण के लिए / null
आदमी का समय ।
No comments:
Post a Comment