ubuntuusers.de

Terminal"Simulations"Programm

Status: Ungelöst | Ubuntu-Version: Ubuntu 16.10 (Yakkety Yak)
Antworten |

mojtabai

Anmeldungsdatum:
16. November 2016

Beiträge: 9

Guten Tag miteinander,

ich möchte gern ein Kommandozeilentool bauen, welches mir auf bestimmte "Befehle" eine bestimmte Antwort gibt. Ich habe schon eine Art "screenplay" geschrieben, wann was passieren soll.

Beim Start des Programms soll ein bestimmter Willkommenstext erscheinen, dann ein Menü. Wenn ich im Menü etwas auswähle (durch drücken der jeweiligen Zahl des Menüpunkts), sollen dann die Optionen des Menüpunkts erscheinen sowie eine Möglichkeit bestehen, zum Hauptmenü zurück zu kehren.

Auch benötige ich die Möglichkeit, dass bei bestimmten Befehlen eine Grafikdatei (animiertes gif?) abgespielt werden soll. Bei der Auswahl eines anderen Befehls soll dann die eine Grafik verschwinden und eine andere auftauchen.

Auch ein Fortschrittsbalken wird hin und wieder mal gebraucht → Bei der Routine "sudo apt-autoremove" erscheint ja auch ein Fortschrittsstatus aus #-Zeichen im Terminal

Es wird zwar nur eine Spielerei, aber es soll halt hübsch und echt aussehen.

Ich habe gehört, dass sich mit Python sowas gut umsetzen ließe. Kann mir jemand was genaueres dazu sagen?

sebix Team-Icon

Ehemalige

Anmeldungsdatum:
14. April 2009

Beiträge: 5582

mojtabai schrieb:

ich möchte gern ein Kommandozeilentool bauen, welches mir auf bestimmte "Befehle" eine bestimmte Antwort gibt.

Eine Shell?^^

Auch benötige ich die Möglichkeit, dass bei bestimmten Befehlen eine Grafikdatei (animiertes gif?) abgespielt werden soll.

Gif in der Shell? Per ASCII-Art?

Ich habe gehört, dass sich mit Python sowas gut umsetzen ließe.

Curses (programming library)?

mojtabai

(Themenstarter)

Anmeldungsdatum:
16. November 2016

Beiträge: 9

Hi.

Danke für die erste Antwort.

Die Grafik soll sich in einem Extra-Fenster öffnen und nicht als ASCII-Art laufen.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17618

Wohnort: Berlin

Mit Bash:

1
select gif in $(find -name "*.gif") EXIT; do test $gif == "EXIT" && break || display $gif; done

Mit Dateinamen und -pfadenm, die Blanks enthalten, klappt das nicht, und display aus dem Paket ImageMagick muss installiert sein, bzw. das Paket.

Auch benötige ich die Möglichkeit, dass bei bestimmten Befehlen eine Grafikdatei (animiertes gif?) abgespielt werden soll. Bei der Auswahl eines anderen Befehls soll dann die eine Grafik verschwinden und eine andere auftauchen.

Das geht mit Display so nicht (so einfach). Wenn display läuft blockiert es, bis es beendet wird. Du könntest es freilich im Hintergrund starten, und bei der Auswahl einer neuen Grafik laufende Instanzen von display killen. Dabei würdest Du aber bereits unabhängig laufende Instanzen mitkillen. Also müsstest Du die PID der selbst gestarteten Instanzen protokollieren, um nur die zu killen.

Also möglich, aber Aufwand.

Auch ein Fortschrittsbalken wird hin und wieder mal gebraucht → Bei der Routine "sudo apt-autoremove" erscheint ja auch ein Fortschrittsstatus aus #-Zeichen im Terminal

Such mal im Forum nach ASCII oder ANSI-Sequenzen mit Fortschrittsbalken.

Das find-Kommando oben sollte man in einem Verzeichnis starten, wo es auch gif-Dateien in mindestens einem Unterverzeichnis gibt, und dass der Ast nicht zu viele Dateien enthält. Es geht natürlich auch explizit und mit Leerzeichen:

Mit Bash:

1
select gif in a.gif b/b.gif "c c/c c.gif" EXIT; do test $gif == "EXIT" && break || display $gif; done

phunter88

Avatar von phunter88

Anmeldungsdatum:
17. April 2012

Beiträge: 6

Wohnort: Thüringen

Mal eine Frage, benötigst du jetzt alles oder nur die gif Geschichte??? Hast du jetzt schon das Programm drum herum? Und kann das Programm innerhalb der Shell laufen?

mfg

Antworten |