在 bash 中显示和更新计数器

在 bash 中显示和更新计数器

我认为是这样的:(Fedora14/bash)

#!/bin/bash

for i in {0..10..1}; do echo -e "$i"'\c'
echo -e "\n\r"
sleep 1
done

但这不起作用。目的:像这样,但没有“明确”:

#!/bin/bash

for i in {0..10..1}; do echo -e "$i"
sleep 1
clear
done

因此,一个计数脚本不会删除整个屏幕来输出 +1 数字,而是仅删除计数所在的行,这样就可能出现例如:一个漂亮的“进度条”..

答案1

for i in {0..15}; do echo -ne "$i"'\r'; sleep 1; done; echo 

默认情况下,步宽 1 不需要 ..1。

echo -n 

防止换行。

\r正在返回到行首(没有换行符 - \n),并且比我以前使用的 '\b' 更好地后退单个字符,如果您有多个数字,则不方便。感谢 rozcietrzewiacz。

答案2

您在寻找这样的东西吗?

for i in {1..10}; do 
  printf '\r%2d' $i
  sleep 1
done
printf '\n'

相关内容