के लिए संघर्ष करना मैं बैश में टाइम कमांड के आउटपुट को पार्स करने के लिए संघर्ष कर रहा हूं - और इसे कॉल करने पर इसे आउटपुट प्रिंट करने से रोकने के लिए भी।पार्स (बैश) टाइम कमांड
#!/bin/bash
TIME=`time ls -lh > /dev/null`
echo "Testing..."
echo $TIME
यह वर्तमान में बाहर प्रिंट:
{blank-line}
real 0m0.064s
user 0m0.002s
sys 0m0.005s
Testing
{blank-line}
इसलिए, यह $TIME
करने के लिए सौंपा मूल्य की तरह लगता है समय प्रिंट-आउट के शुरू में रिक्त पंक्ति है यह मेरा परीक्षण कोड है। मुझे sys लाइन के सेकंड मान पर जाना होगा - यानी, "0.005"। मुझे गारंटी है कि मेरे पास केवल सेकंड होंगे, इसलिए मुझे "एम" से पहले कुछ भी चाहिए नहीं है - हालांकि, सेकेंड भाग xx.xxx के रूप में हो सकता है यदि यह> = 10 सेकंड हो जाता है। मुझे वर्तमान में कोई समय नहीं है कि 'टाइम' आउटपुट को दबाने के लिए, रिक्त रेखा के बजाय इसे कैप्चर करें, न ही मुझे आवश्यक मान प्राप्त करने के लिए इसका विश्लेषण करें।
किसी भी मदद की बहुत सराहना की जाएगी ...
आह, मैं 'STDERR' को उस समय उत्पादन का एहसास नहीं था। मैं उस समय '$ TIME' चर में कैप्चर कैसे करूं? – Stephen