首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在bash中垂直替换控制台输出

如何在bash中垂直替换控制台输出
EN

Stack Overflow用户
提问于 2011-11-30 16:46:33
回答 1查看 528关注 0票数 2

我正在使用Bash (cygwin),我想实现一些类似于跨越垂直线的进度指示器。它将替换控制台输出,并且不会附加到该输出中。它需要看起来像一个动画。

因此,随着时间的推移,会出现以下输出:

迭代1:

代码语言:javascript
复制
---
---
---

迭代2:

代码语言:javascript
复制
*--
---
---

迭代5:

代码语言:javascript
复制
***
*--
---

诀窍是跨越垂直线。

如果不跨越垂直线,使用echo很容易。我可以使用\b向后移动一个空格并覆盖前面的字符:

代码语言:javascript
复制
echo -n -e "\b"

但是如何上移一行并覆盖以前的行呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-30 16:58:24

可以使用ANSI转义序列来移动光标:

代码语言:javascript
复制
\033[NA   - cursor up N lines
\033[NB   - cursor down N lines
\033[NC   - cursor right N steps
\033[ND   - cursor left N steps

所以

代码语言:javascript
复制
$ echo -e '\033[8Chello'
        hello
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8323172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档