我如何才能始终测量终端进程的执行时间?

我如何才能始终测量终端进程的执行时间?

我试图让终端始终显示我通过命令行调用的进程的执行时间(即,我想知道该进程需要多长时间才能完成)。

我知道如果在命令前输入时间,最后它会显示执行时间,但我们的想法是除了命令之外不输入任何内容,并在可能的情况下在最后接收执行时间。

答案1

使用tcsh和设置time

为每个命令计时的一个非常简单的方法是安装并使用 shell tcsh(而不是bashUbuntu 中的标准)并设置变量time

tester@my-laptop:~$ sudo apt install tcsh

tester@my-laptop:~$ tcsh
my-laptop:~> set time
my-laptop:~> sleep 3
0.003u 0.000s 0:03.00 0.0%      0+0k 0+0io 0pf+0w
my-laptop:~> 

显示每个提示的打印时间bash

也许在提示符中有一个时钟就足够了,这样当命令完成并且终端窗口返回提示符时你就能看到“挂钟时间”?

为了这个目的,一个粗略的交互输入提示将是

PS1='$(date '+%T') $ '

或添加到当前提示

PS1='$(date '+%T') '"$PS1"

使用以下命令重置为标准提示符

source ~/.bashrc

答案2

像这样运行带有时间的命令(这是一个 shell 关键字,又称命令)。time foobar或者time sleep 1。另一个例子是

#!/bin/bash
#how big is your file system
time tree /

相关内容