在命令行中创build一个Linux“GUI”

如何在命令行界面中创build一个显示良好用户界面的Linux程序?

例如,当我使用“wget”从互联网上下载文件时,我可以在命令行界面中看到下载进度。 我怎样才能做到这一点?

看看诅咒 。 这是一个基于文本的用户界面的图书馆。

ncurses是一个流行的选项,有许多编程语言的API。

您可以通过\r转到当前行的开头来获得基本的界面。

略高一些的是ncurses 。

下一步是蝾螈 。

如果你想为Bash脚本做一个GUI或者绕过其他命令行工具,你可以使用对话框 ( 手册页 )。

这里有两个很棒的对话教程,让你开始:

  • 对话框:入门教程
  • 使用对话框改进Bash Shell脚本 。

如果你只需要一个进度条,可以用一个简单的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"