如何在bash中垂直替换控制台输出
我正在使用Bash(cygwin),我想实现一个跨越垂直线的进度指示器。它替换控制台输出,不附加到控制台输出。它需要看起来像一个动画 因此,此输出会随着时间的推移而出现: 迭代1:如何在bash中垂直替换控制台输出,bash,cygwin,Bash,Cygwin,我正在使用Bash(cygwin),我想实现一个跨越垂直线的进度指示器。它替换控制台输出,不附加到控制台输出。它需要看起来像一个动画 因此,此输出会随着时间的推移而出现: 迭代1: --- --- --- 迭代2: *-- --- --- 迭代5: *** *-- --- 诀窍是跨越垂直线 如果不跨越垂直线,echo很容易实现。我可以使用\b向后移动空格并覆盖以前的字符: echo -n -e "\b" 但是如何上移一行并覆盖以前的行呢 使用ANSI转义序列移动光标: \033[NA
---
---
---
迭代2:
*--
---
---
迭代5:
***
*--
---
诀窍是跨越垂直线
如果不跨越垂直线,echo很容易实现。我可以使用\b向后移动空格并覆盖以前的字符:
echo -n -e "\b"
但是如何上移一行并覆盖以前的行呢 使用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