我正在使用Bash(cygwin),我想实现类似于跨越垂直线的进度指示器.它取代了控制台输出,不会附加到它.它需要看起来像一个动画.
所以这个输出随着时间推移出现
迭代1:
---
---
---
Run Code Online (Sandbox Code Playgroud)
迭代2:
*--
---
---
Run Code Online (Sandbox Code Playgroud)
迭代5:
***
*--
---
Run Code Online (Sandbox Code Playgroud)
诀窍是跨越垂直线.
如果不跨越垂直线,则很容易使用回声.我可以使用\ b向后移动一个空格并覆盖以前的字符:
echo -n -e "\b"
Run Code Online (Sandbox Code Playgroud)
但是你如何向前移动一条线并覆盖前一条线.
您使用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
Run Code Online (Sandbox Code Playgroud)
所以
$ echo -e '\033[8Chello'
hello
Run Code Online (Sandbox Code Playgroud)