【问题标题】:Make a Linux "GUI" in the command line在命令行中制作 Linux “GUI”
【发布时间】:2010-02-19 13:31:31
【问题描述】:

如何让Linux程序在命令行界面中显示出漂亮的用户界面?

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

【问题讨论】:

标签: linux user-interface command-line


【解决方案1】:

使用\r跳转到当前行首即可得到基本界面。

稍微高级一点的是ncurses

下一步是Newt

【讨论】:

    【解决方案2】:

    看看curses。它是一个基于文本的 UI 库。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        如果您想为 Bash 脚本创建一个 GUI 或环绕其他命令行实用程序,您可以使用 dialog (man page)。

        这里有两个很棒的对话教程可以帮助您入门:

        【讨论】:

          【解决方案5】:

          如果您只需要一个进度条,这可以直接使用简单的print(打印进度条),后跟 回车符(ANSI 字符 #13)来完成让您回到行首。然后可以通过在其上打印来更新该行。

          对于更复杂的需求,ncurses 确实是标准方法。

          【讨论】:

            【解决方案6】:

            我不会将 wget 的进度报告称为“漂亮的 gui”,但无论如何,在没有 X Windows 的情况下构建图形界面的经典库是 Linux,而 UNIX 系统是 ncurses

            最近启动了C#版本的ncurses,详情查看here

            【讨论】:

              【解决方案7】:

              如果您使用的是 Mono,您可以使用 MonoCurses

              【讨论】:

                【解决方案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"
                    

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 2012-02-07
                      • 1970-01-01
                      • 2017-08-26
                      • 1970-01-01
                      • 2011-02-05
                      • 2022-09-23
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多