echo 帮助 bash 脚本计算秒数(并覆盖)

echo help for bash script to count seconds (and overwrite)

我想在我的终端提示符上有一个计数器。我在几分钟内从命令行向它传递了一个值。它计算屏幕上的秒数,没有换行符,换句话说,它显示 0、1、2、3 等...但会覆盖之前的数字。我怎样才能做到这一点?下面的脚本每秒换行一次。

#!/bin/bash
i=0
seconds=*60
while (( $i < $seconds ))
do
  echo $i
  sleep 1
  ((i++))
done

您可以使用 * 运算符调整宽度:

while (( i < seconds )); do
   printf "\r%*d" ${#seconds} $i
   sleep 1
   ((i++))
done