需要bash time命令的功能才能运行

时间:2018-03-07 05:57:27

标签: linux bash time bin

我现在拥有的:

#!/bin/bash

/usr/bin/time -f "%E" rows=$(mysql -uuser -pXXXXXXXXXX --skip-column-names -e "use db; update users set create_time=now(); select row_count();") 
echo $rows

但运行时出现此错误:

/usr/bin/time: cannot run rows=12: No such file or directory
0:00.00 real

我需要使用这个真实的/ usr / bin / time命令,而不是可用的独立时间命令。有什么办法可以使用这个命令来获得我想要的功能吗?

1 个答案:

答案 0 :(得分:2)

变量赋值是一个shell构造,你不能将它作为命令“运行”,如果可以的话,它对你当前的shell会话没有任何影响。但幸运的是,您需要做的就是重新组织命令:

rows=$(/usr/bin/time -f "%E" mysql -uuser -pXXXXXXXXXX --skip-column-names -e "use db; update users set create_time=now(); select row_count();")

由于time默认情况下会向stderr显示时间信息,因此它将转到控制台,而不会被$()构造捕获。 mysql的输出将像往常一样传递并捕获。