我想在linux shell中在几种不同的条件下执行一些东西,并且能够输出每次执行的执行时间.

我知道我可以编写一个perl或python脚本来实现这一点,但是有没有一种方法可以在shell中实现呢?(恰巧是bash)

推荐答案

使用内置的time关键字:

$ help time

time: time [-p] PIPELINE
    Execute PIPELINE and print a summary of the real time, user CPU time,
    and system CPU time spent executing PIPELINE when it terminates.
    The return status is the return status of PIPELINE.  The `-p' option
    prints the timing summary in a slightly different format.  This uses
    the value of the TIMEFORMAT variable as the output format.

例子:

$ time sleep 2
real    0m2.009s
user    0m0.000s
sys     0m0.004s

Linux相关问答推荐

GNC C:关于主要出发点混乱的 idea ?

在Zenity进度窗口上单击取消后如何停止bash脚本

std::chrono::time_zone 在不同操作系统上不可用

不带空格的字符串连接形成文件路径

动态链接ELF文件是否需要ELF节头表?

CMake:处理静态库和共享库的正确方法

可以用openmp并行化内存分配删除吗? (c++)

如何更改文件的上次访问/修改/更改日期?

递归/详尽地将点插入字符串

Linux 如何将主机文件作为用户的输入并将其调用到脚本中

为什么 printf 仍然可以使用低于 XMM 寄存器中 FP args 数量的 RAX?

函数在 shell 脚本中抛出错误语法错误:} unexpected

使用正则表达式时,Shell 'tar: not found in archive' 错误

用于 GCC/G++ 的宏来区分 Linux 和 Mac OSX?

为什么这个命令会杀死我的 shell?

Supervisord - 将进程标准输出重定向到控制台

vscode 总是请求保存权限

在 bash 中将输出作为 cp 的参数传递

Linux 守护进程

Linux如何确定下一个PID?