如何解决简单的控制台图形,GUI或来自Shell脚本的界面?
| 我想通过做一些简单的,类似于ncurses的控制台显示来完善Bash shell脚本的输出。 例如,我想显示百分比值随着某些活动的完成而增加。我可以通过在新行上输出每个百分比值来做到这一点,例如,0%
1%
2%
... etc. ...
但是我更喜欢文本更新(也就是说,脚本只写一行输出以显示百分比,然后该行上显示的百分比值改变)。我知道我可以使用其他脚本语言和ncurses,但是有没有一种Bash解决方案不会招致太多痛苦。最好,我希望在各种Unix上都具有广泛的支持。
解决方法
输出
\\r
将使光标返回第一列,以便您可以覆盖已经存在的文本。如果您需要更复杂的动作,则具有各种cu*
功能的tput
将允许您根据需要移动和放置光标。
, 为了获得全面的通用性和可移植性,将使用“ 4”包。基本的“ 5”构架具有高度的可移植性。还有一个称为gdialog
的Gtk + GUI版本。然后,您不仅可以选择所描述的内容,还可以选择实际的进度条小部件。
在更简单的方面,只需输出\\r
(使用printf
实用程序,或在older9ѭ或echo ... \\r\\c
之一的较早的商业Unix上),您就可以覆盖一行。
, 使用ANSI转义码来使用或着色光标。
这是python中的一个简短示例(使用-u标志运行它以进行无缓冲操作,因为否则您将看不到更新):
#!/usr/bin/env python
import time
import sys
for i in range (10):
sys.stdout.write (\'%d\\x1b[1D\' % i)
time.sleep (1)
CSInD(\'\\ x1b [1D \')将光标向左移动n个位置。如果您想使用彩色光标,只需打印例如\'\\ x1b [1; 31m \'。适用于几乎所有外壳。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。