Tôi đang vật lộn để phân tích đầu ra của lệnh thời gian trong bash - và thậm chí để ngăn chặn nó in ra đầu ra của nó khi tôi gọi nó. Đây là mã thử nghiệm của tôi:Đấu tranh để phân tích cú pháp (bash) lệnh thời gian
#!/bin/bash
TIME=`time ls -lh > /dev/null`
echo "Testing..."
echo $TIME
này hiện in ra:
{blank-line}
real 0m0.064s
user 0m0.002s
sys 0m0.005s
Testing
{blank-line}
Vì vậy, nó có vẻ như giá trị giao cho $TIME
là dòng trống vào lúc bắt đầu của thời gian in ra. Tôi cần lấy giá trị giây của dòng sys - nghĩa là "0,005". Tôi đảm bảo rằng tôi sẽ chỉ bao giờ có giây, vì vậy tôi không cần bất cứ điều gì trước khi "m" - tuy nhiên, phần giây có thể ở dạng xx.xxx nếu nó đi> = 10 giây. Tôi hiện không có ý tưởng làm thế nào để ngăn chặn đầu ra 'thời gian', nắm bắt tất cả thay vì dòng trống, cũng không phân tích nó để có được các giá trị tôi cần.
Bất kỳ trợ giúp sẽ được nhiều đánh giá cao ...
Ah, tôi đã không nhận ra rằng thời gian đầu ra cho 'STDERR'. Làm cách nào để tôi ghi lại biến đó vào biến '$ TIME'? – Stephen