写一个命令行工具怎样让输出的东西更新?

2016-02-29 11:24:09 +08:00
 wohenyingyu01

请教大侠:

比如用 c 写的 print hello world ,怎样让已经 print 出来的 hello world 更新成成 123456 ,而不是重新输出一行?比如 curl 下载的时候会更新百分比,或者更高级一点的 vim ,在更新的同时还能互动?这种功能需要特定语言实现么?

谢谢

1827 次点击
所在节点    问与答
10 条回复
haython
2016-02-29 11:38:25 +08:00
输出\r,回到行首,重新覆盖
Sunyanzi
2016-02-29 11:43:32 +08:00
for i in {1..50}; do echo -ne "\r"$i; sleep 0.3; done

是这个意思 ..?
wohenyingyu01
2016-02-29 15:36:51 +08:00
@Sunyanzi
@haython
回头试试,不知道 java 和 swift 行不行
des
2016-02-29 17:33:48 +08:00
@haython 换行了怎么办的?
mx3y
2016-02-29 17:43:59 +08:00
复制当前的文本内容,然后替换需要更新的,然后清空,再输出。
manfay
2016-02-29 18:04:50 +08:00
Ncurses
wohenyingyu01
2016-02-29 19:20:13 +08:00
@mx3y 怎么清空?
zhjits
2016-02-29 19:30:36 +08:00
方法 1 :根据终端窗口的长宽来填空字符或者换行
方法 2 : libreadline
方法 3 : ncurses
crystom
2016-02-29 20:19:06 +08:00
tracyone
2016-02-29 20:34:08 +08:00
linux 下时 getopt 和 getoptlong 函数,自行百度

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/259823

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX