Сделать Linux "GUI" в командной строке

Как сделать программу Linux в интерфейсе командной строки, которая отображает хороший пользовательский интерфейс?

Например, когда я использую "wget" для загрузки файла из Интернета, я могу видеть продвижение загрузки в интерфейсе командной строки. Как я могу это сделать?

Ответы

Ответ 1

Посмотрите curses. Это библиотека для текстового интерфейса.

Ответ 2

ncurses - популярный вариант, есть API для множества языков программирования.

Ответ 3

Вы можете получить базовый интерфейс, используя \r, чтобы перейти к началу текущей строки.

Немного более продвинутый ncurses.

Следующий шаг вверх Newt.

Ответ 4

Если вы хотите сделать GUI для скриптов Bash или обернуть другие утилиты командной строки, вы можете использовать dialog (справочная страница).

Здесь вы найдете два больших диалоговых учебника:

Ответ 5

Я бы не назвал отчет о выполнении wget "хорошим gui", но в любом случае классическая библиотека для построения графических интерфейсов без X Windows - это системы Linux и UNIX ncurses.

Недавно была запущена версия ncurses на С#, посмотрите подробности здесь

Ответ 6

Если вам нужен только индикатор выполнения, это можно сделать непосредственно с помощью простого print (который печатает панель), за которым следует символ символ возврата каретки (символ ANSI # 13), который возвращает вас в начале строки. Затем эту строку можно обновить, распечатав поверх нее.

Для более сложных потребностей ncurses действительно является стандартным способом.

Ответ 7

Если вы используете Mono, вы можете использовать MonoCurses

Ответ 8

Попробуйте curses, это хорошо документированный API для текстового интерфейса. Также существует так много проектов с открытым исходным кодом, которые используют проклятия для вас, и вы узнаете

Ответ 9

wget действительно не имеет графического интерфейса, все, что я вижу, это материал, который вы уже можете достичь, используя stdout и echos (например, printf() или std:: cout)

В любом случае, для простых диалоговых окон типа MessageBox, но не ограничиваясь этим, также посмотрите диалог

Ответ 10

Вы можете просто использовать escape-коды ANSI. Простой пример в bash

echo -e "\033[H\033[2J  \033[20;20H  \033[4mThis is a underlined line.\033[0m"