我正在使用Bash(cygwin),我希望实现类似于跨越垂直线的进度指示器。它取代了控制台输出,不会附加到它。它需要看起来像一个动画。
所以这个输出会随着时间的推移出现:
迭代1:
---
---
---
迭代2:
*--
---
---
迭代5:
***
*--
---
诀窍是跨越垂直线。
如果不跨越垂直线,则很容易使用回声。我可以使用\ b向后移动一个空格并覆盖以前的字符:
echo -n -e "\b"
但是你如何向上移动并覆盖前一行。
答案 0 :(得分:7)
使用ANSI转义序列移动光标:
\033[NA - cursor up N lines
\033[NB - cursor down N lines
\033[NC - cursor right N steps
\033[ND - cursor left N steps
所以
$ echo -e '\033[8Chello'
hello