首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bash:在长时间自动完成期间显示进度指示器

Bash:在长时间自动完成期间显示进度指示器
EN

Stack Overflow用户
提问于 2015-01-28 21:28:17
回答 1查看 190关注 0票数 7

我有一个bash自动补全功能,它可以查询数据库,为bash中的当前命令行提供可能的补全。它大约需要3秒才能完成,在这段时间内,用户没有任何迹象表明他触发了自动完成--提示他再按几次TAB,导致自动完成可能会再运行几次。

是否有可能在启动自动补全后,以某种方式操作命令行以显示正在执行某些操作?例如,当我在命令foo之后按两次TAB时,我希望立即发生以下情况:

代码语言:javascript
复制
$ foo
autocompleting...

然后在确定可能的完成后,更改为:

代码语言:javascript
复制
$ foo
bar        baz        jazz

或者,如果我键入foo j并按TAB键一次,则会出现以下结果:

代码语言:javascript
复制
$ foo j
autocompleting...

应更改为

代码语言:javascript
复制
$ foo jazz

它下面没有任何额外的文本,正如预期的那样。

下一步是考虑是否可以在自动完成运行时动态输出,例如,在单个位置打印字符\ | / -,就像一行在原地旋转一样--以直观地指示正在发生的事情。这有可能吗?

EN

回答 1

Stack Overflow用户

发布于 2015-01-31 02:10:21

当然,这是可能的,我想你会在这个答案中找到你需要的一切(所以这可能被认为是一个重复的问题):Using BASH to display a progress (working) indicator

您的问题略有不同,因为您希望删除微调器,然后输出结果。因此,您可能会考虑颠倒已有背景的流程。换句话说,在后台处理你的微调函数,然后当你的自动完成函数完成时(但在输出结果之前,如果你的代码可能的话),它可以被显式地杀死。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28193480

复制
相关文章

相似问题

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