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

标签 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 命令,而不是可用的独立时间命令。有什么方法可以使用此命令来获得我想要的功能吗?

最佳答案

变量赋值是一个 shell 构造,您不能将其作为命令“运行”,即使可以,它也不会对您当前的 shell session 产生任何影响。但幸运的是,您需要做的就是重新组织命令:

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 的输出将照常传递和捕获。

关于linux - 需要 bash time 命令的功能才能运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49145087/

相关文章:

c - 将另一个用户ID设置为当前进程

bash - 如何编写输出带有空格的(文件)名称的命令,以使它们在反引号内工作?

bash - 在 sed 中扩展变量

python - 检查 line 是否是 Python 中的时间戳

linux - 在 Assembly x86 中创建 for 循环

php - 扎比克斯 3.4,甲骨文 Linux 7.4 : Error with php-mbstring and php-bcmath

linux - 如何使用命令行删除文件夹中特定文件类型的所有文件

linux - bash:遍历进程输出并终止进程

python - 创建时间序列数据框的最快方法

objective-c - 更改主窗口上的 Alpha - Cocoa