【问题标题】:Make a Linux "GUI" in the command line在命令行中制作 Linux “GUI”
【发布时间】:2010-02-19 13:31:31
【问题描述】:
如何让Linux程序在命令行界面中显示出漂亮的用户界面?
例如,当我使用“wget”从 Internet 下载文件时,我可以在命令行界面中看到下载进度。我怎样才能做到这一点?
【问题讨论】:
标签:
linux
user-interface
command-line
【解决方案4】:
如果您想为 Bash 脚本创建一个 GUI 或环绕其他命令行实用程序,您可以使用 dialog (man page)。
这里有两个很棒的对话教程可以帮助您入门:
【解决方案5】:
如果您只需要一个进度条,这可以直接使用简单的print(打印进度条),后跟 回车符(ANSI 字符 #13)来完成让您回到行首。然后可以通过在其上打印来更新该行。
对于更复杂的需求,ncurses 确实是标准方法。
【解决方案6】:
我不会将 wget 的进度报告称为“漂亮的 gui”,但无论如何,在没有 X Windows 的情况下构建图形界面的经典库是 Linux,而 UNIX 系统是 ncurses。
最近启动了C#版本的ncurses,详情查看here
【解决方案8】:
试试 curses,它是一个有据可查的基于文本的 UI 的 API。此外,有很多开源项目正在使用 curses 供您查看和学习
【解决方案9】:
wget 并没有真正的 GUI,我所看到的只是你已经可以使用 stdout 和 echos 实现的东西(例如 printf() 或 std::cout)
无论如何,对于MessageBox类的简单对话框,但不限于此,还可以看看对话框
【解决方案10】:
您可以只使用 ANSI 转义码。 bash中的一个简单示例
echo -e "\033[H\033[2J \033[20;20H \033[4mThis is a underlined line.\033[0m"