bash - 如何在 bash 中创建秒表?

标签 bash math time timer bash-function

我创建了一个简单的秒表(bash 函数)来计算时间,但现在它以毫秒显示当前时间。

代码:

function stopwatch() {
    date +%H:%M:%S:%N
    while true; do echo -ne "`date +%H:%M:%S:%N`\r"; done;
}

我尝试按照 this answer 中的说明更改它, 但它仅适用于自 Unix Epoch 以来的第二个。

当我使用 date 格式 +%s.%N 时,上述答案的减法停止工作,因为 bash 减法只需要整数。

我该如何解决它并拥有一个像这样打印时间的终端秒表:

0.000000000
0.123123123
0.435345345
(and so on..)

?

最佳答案

一种可以工作一天的可能(& hacky)机制:

$ now=$(date +%s)sec
$ while true; do
     printf "%s\r" $(TZ=UTC date --date now-$now +%H:%M:%S.%N)
     sleep 0.1
  done

奖励:您可以随时按 enter 键获取 LAP 时间。 ;-)

注意:这是一个快速修复。应该有更好的解决方案......

watch 基于变体(相同逻辑):

$ now=$(date +%s)sec; watch -n0.1 -p TZ=UTC date --date now-$now +%H:%M:%S.%N

关于bash - 如何在 bash 中创建秒表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37986523/

相关文章:

bash - 在 Unix 上隐藏命令行参数的 secret

linux - Bash,执行命令但继续交互式 session

c++ - 如何访问第三方源文件中的函数?

javascript - 如何将来自外部源的时间作为 X 轴添加到 ChartJS 图表中?

linux - 如何存储 "top"的输出而不是将其打印到终端?

Bash 脚本使用 Grep 在文件中搜索模式

math - 从 2D 点计算单位球体上的 3D 坐标

Java:概率分布支持

php - 在 php/mysql 中将日期时间数据类型转换为日期和时间数据类型

r - R 中日期重叠的按天求和的时间间隔数据