我创建了一个简单的秒表(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/