![在 bash 中显示和更新计数器](https://linux22.com/image/17649/%E5%9C%A8%20bash%20%E4%B8%AD%E6%98%BE%E7%A4%BA%E5%92%8C%E6%9B%B4%E6%96%B0%E8%AE%A1%E6%95%B0%E5%99%A8.png)
我认为是这样的:(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'