我正在尝试编写一个脚本,我想要倒计时三秒钟(可能使用sleep命令),但每一秒我想显示文本“break”。
每隔一秒钟后,我想在“休息”一词旁边显示一个倒计时,但文字行应保持不变。 “休息”这个词必须留在一个地方;只有数字应该改变。
答案 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