Womit Linux consolen anwendung schreiben?

Gast #5400563
Lesenswert?
• ▲
▼
Hallo
Ms Dos mit Basic ist ewig her doch in meinem Kopf noch frisch und 
lebendig. Ich habe jetzt viele Jahre Webanwendungen Java und Python 
Notebooks geschrieben doch heute stand ich vor einem Problem. Ich wollte 
mir nur mal schnell einige variablen und Daten geordnet anzeigen lassen 
(Python). Also schnell eine Loop drum Print und gut. Da war es wieder 
Print mit Position ala Locate Print. Das könnte man jetzt brauchen.
Nur wie stellt man das an? nach Langem Googlen hab ich zumindest 
einigermaßen was gefunden.
Aber so richtig ordentlich schaut das nicht aus der Blinkende Cursor 
spring je nach Print über den Bildschirm...

Wie oder womit würde man in der heutigen zeit eine "Consolen" Anwendung 
schreiben welche wie Früher mit Menüs mit Linien aus Ascii code und 
villeicht sogar Farbe bestehen. Zielsystem in diesem Fall ein Ubuntu 
Server ohne Click & bunt.
Angehängte Dateien:
Gast #5400570
Lesenswert?
• ▲
▼
svenner schrieb:

> Wie oder womit würde man in der heutigen zeit eine "Consolen" Anwendung
> schreiben welche wie Früher mit Menüs mit Linien aus Ascii code und
> villeicht sogar Farbe bestehen. Zielsystem in diesem Fall ein Ubuntu
> Server ohne Click & bunt.

Hast Du Dir mal ncurses angesehen?
(Firma: RUB) #5400595
Lesenswert?
• ▲
▼
Du koenntest dir mal 'dialog' anschauen.
1
dialog(1) - Linux man page
2
dialog - display dialog boxes from shell scripts
https://linux.die.net/man/1/dialog


Dialog: An Introductory Tutorial
https://www.linuxjournal.com/article/2807


Wenn es um das Setzen der Position des Konsolencursors geht, kann man 
sich mit einem kleinen Hack behelfen:
1
void goto_xy(int x, int y)
2
{
3
    printf("\x1B[%i;%if", x, y);
4
}
https://stackoverflow.com/questions/8683526/gotoxy-implementation-for-linux-using-printf
http://www.termsys.demon.co.uk/vtansi.htm

In Python:
1
import sys
2

3
def goto_xy(x, y):
4
    # writes to stdout like print, but
5
    # without the newline
6
    sys.stdout.write('\x1B[{};{}f'.format(x, y))
#5404139
Lesenswert?
• ▲
▼
... wie Vorredner schon geschrieben haben ist in der Linuxkonsole 
ncurses der Klassiker (bspw. ist der Midnight Commander mit ncurses 
realisiert).

Für kleine schnelle Dinge in der Konsole und für den Grundkurs C meiner 
Auszubildenden habe ich txtools.c / .h geschrieben und die Namesgebung 
der Funktionen und Deklarationen an Turbo-C / Turbo Pascal angelehnt:

gotoxy(x,y)
settextcolor(uint8_t col)
setbkcolor(uint8_t col)

int getch(void)
int keypressed(void)
uint32_t readkey(void)

Wenn du auch in C programmierst ist das für dich vielleicht brauchbar 
!?!.

Eine sehr kleine Demo und den Sourcecode findest du im Anhang.

Gruß Ralph
Angehängte Dateien:
#5405293
Lesenswert?
• ▲
▼
Viele haben so ihre lingua franca für einfache Fälle. Bei mir ist es 
Perl. Nicht weil das die beste Sprache ist, sondern weil ich die über 
die Jahrzehnte in DOS, Unix, OS/2, Linux und Windows verwendete. 
Entweder gab es Perl schon, oder ich habs eben portiert.

Auch schon für GUI via Tk (Unix, Windows).
#5414841
Lesenswert?
• ▲
▼
Jay W. schrieb:
> Als "Ewiggestriger" nutze ich gern Free(Turbo)Pascal mit
> Free(Turbo)Vision für solche Dinge, alternativ auch Perl mit ncurses.

Irgendwie freut mich dass, dass nicht nur ich noch FreeVision verwende. 
Hauptsächlicher Nachteil hierbei ist, dass die Konsole im Textmodus 
(kein x am laufen) nicht mehr mittels ALT-Fx umschaltbar sind. Leider.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.