如何在命令行界面中创build一个显示良好用户界面的Linux程序?
例如,当我使用“wget”从互联网上下载文件时,我可以在命令行界面中看到下载进度。 我怎样才能做到这一点?
看看诅咒 。 这是一个基于文本的用户界面的图书馆。
ncurses是一个流行的选项,有许多编程语言的API。
您可以通过\r
转到当前行的开头来获得基本的界面。
略高一些的是ncurses 。
下一步是蝾螈 。
如果你想为Bash脚本做一个GUI或者绕过其他命令行工具,你可以使用对话框 ( 手册页 )。
这里有两个很棒的对话教程,让你开始:
如果你只需要一个进度条,可以用一个简单的print
(打印栏)直接完成,然后是回车符 (ANSI字符#13),这将使你回到行首。 然后可以通过打印来更新该行。
对于更复杂的需求, ncurses
确实是标准的路要走。
我不会将wget的进度报告称为“很好的GUI”,但无论如何,用于构建没有X Windows的图形界面的经典库是Linux和UNIX系统是ncurses 。
最近一个C#版本的ncurses已经启动,请查看细节
如果你使用单声道,你可以使用MonoCurses
尝试诅咒,这是一个良好的基于文本的UI的API。另外,有这么多的开源项目,使用诅咒,你看到和学习
wget没有一个真正的GUI,我所看到的是你可以用stdout和echo(例如printf()或者std :: cout)实现的东西,
无论如何,对于MessageBox类的简单对话框,但不限于此,也可以看看对话框
你可以使用ANSI转义码。 bash中的一个简单例子
echo -e "\033[H\033[2J \033[20;20H \033[4mThis is a underlined line.\033[0m"