如何在 linux 中制作一个计数器?

how to make a counter in linux?

我正在尝试编写一个脚本,我想在其中倒计时三秒(可能使用 sleep 命令),但我想每秒显示文本 "break"。

每一秒后,我想在单词 "break" 旁边显示一个倒计时,但文本行应该保留在原位。 "break"这个词必须留在一个地方;只有数字应该改变。

您可以使用 ANSI terminal control sequences。像这样:

# Save the cursor position
echo -en "3[s";

for i in {3..1} ; do

    echo -n "break $i"
    sleep 1

    # Restore the cursor position
    echo -en "3[u";

done

# Print newline at the end
echo

如果您希望最后一行 break 1 从屏幕上消失,请将最后一行更改为

# Clear the line at the end
echo -en "3[K"

在bash中,可以使用for循环,字符\r将光标移回行首:

for ((i=3; i; --i)) ; do
    printf 'break %d\r' $i
    sleep 1
done