2010-02-19 3 views
16

Wie ein Linux-Programm in der Befehlszeile Interface, die eine nette Benutzeroberfläche anzeigen?Machen Sie eine Linux "GUI" in der Befehlszeile

Zum Beispiel, wenn ich "wget" verwenden, um eine Datei aus dem Internet herunterzuladen, kann ich den Download-Fortschritt in der Befehlszeilenschnittstelle sehen. Wie kann ich das machen?

+0

Was ist die Sprache, die Sie dieses Frontend schreiben möchten? – Lucas

+1

Dies [1] scheint genau das zu sein, wonach Sie suchen. [1] http://en.wikipedia.org/wiki/Text_user_interface –

Antwort

12

Werfen Sie einen Blick auf curses. Es ist eine Bibliothek für textbasierte UI.

12

ncurses ist eine beliebte Option, es gibt APIs für viele Programmiersprachen.

1

Ich würde wget Fortschrittsbericht nicht als eine "nette GUI" nennen, aber wie auch immer, die klassische Bibliothek zum Erstellen von grafischen Oberflächen ohne X Windows ist Linux und UNIX-Systeme ist ncurses.

Vor kurzem wurde eine C# Version von ncurses gestartet wurde, überprüfen Details here

0

Versuchen Sie nutzen könnten, ist es eine gut dokumentierte API für textbasierte Benutzeroberfläche ist Auch gibt es so viele Open-Source-Projekte, die Flüche für Sie verwenden, sehen und lernen

9

Sie können eine grundlegende Schnittstelle erhalten, indem Sie \r verwenden, um an den Anfang der aktuellen Zeile zu gehen.

Etwas weiter fortgeschritten ist ncurses.

Der nächste Schritt ist Newt.

0

wget nicht wirklich eine GUI haben, alles was ich sehe Dinge, die Sie bereits erreichen können stdout und echos (zB printf() oder std :: cout)

Sowieso für einfache Dialogfelder des MessageBox Art, aber nicht darauf beschränkt, haben auch einen Blick auf Dialog

1

Wenn Sie nur einen Fortschrittsbalken müssen, kann dies direkt geschehen mit einem einfachen print (das druckt die Bar), durch die Wagenrücklaufzeichen gefolgt (ANSI Zeichen # 13), die Sie auf der Rückseite setzt der Anfang der Linie. Die Zeile kann später aktualisiert werden, indem sie darüber gedruckt wird.

Für kompliziertere Anforderungen ist ncurses in der Tat der Standard Weg zu gehen.

0

Sie können einfach ANSI-Escape-Codes verwenden. Ein einfaches Beispiel in bash

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