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

时间:2015-03-16 09:18:45

标签: linux shell sleep

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

每隔一秒钟后,我想在“休息”一词旁边显示一个倒计时,但文字行应保持不变。 “休息”这个词必须留在一个地方;只有数字应该改变。

2 个答案:

答案 0 :(得分:1)

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

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

for i in {3..1} ; do

    echo -n "break $i"
    sleep 1

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

done

# Print newline at the end
echo

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

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

答案 1 :(得分:1)

在bash中,你可以使用for循环,然后使用字符\r将光标移回到行的开头:

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