我正在努力解析 bash 中 time 命令的输出 - 甚至在我调用它时阻止它打印输出。这是我的测试代码:
#!/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”。我保证我只会有几秒,所以我在“m”之前不需要任何东西 - 但是,如果秒数部分>= 10秒,则它可能采用 xx.xxx 的形式。我目前不知道如何抑制“时间”输出,捕获全部而不是空行,也不解析它以获取我需要的值。
任何帮助将非常感激...
如果您使用内置的 Bashtime
,您可以通过设置来控制其输出TIMEFORMAT
多变的:
TIMEFORMAT=%R
并且您不必进行任何解析,因为这会导致time
仅输出秒数。
并使用这个:
echo "Testing..."
TIME=$( { time ls -lh > /dev/null; } 2>&1 )
echo $TIME
或来自的其他技术之一Bash常见问题解答/032 http://mywiki.wooledge.org/BashFAQ/032.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)