Alles bunt!

Dialog beweist, dass selbst kleine Skripte eine ansprechende Benutzeroberfläche haben können und der Benutzer nicht genötigt werden muss, unübersichtliche Abfragen auf der Kommandozeile zu bedienen.

Die Kompatibilität von Gdialog und Kdialog zu Dialog erlaubt sogar, die Kommandozeile komplett vor dem Benutzer zu verbergen, sofern er mit einem grafischen System arbeitet. Der zusätzliche Programmieraufwand dafür hält sich in Grenzen, wie das Beispiel des Termin-Clients zeigt.

Als Lohn für die Mühe winkt meist eine größere Verbreitung des Skripts, wie der Autor selbst durch die Einführung des Dialog-basierten Installationssystem der Mini-Distribution LinVDR erlebt hat. Wenn die Kommandozeile nicht mehr zu Tage tritt, trauen sich auch viele Einsteiger den Umgang mit der Software zu.

Portable Dialog-Funktionen

Die folgenden Liste von Dialog-Funktionen basiert auf praktischen Erfahrungen des Autors und lässt sich über ein großes Versionsspektrum von dialog, gdialog und kdialog einsetzen.

Weitere Funktionen finden Sie in den jeweiligen Manual Pages der Programme. Bei älteren Versionen, wie sie zum Beispiel auf fremden Systemen noch im Einsatz sind, können diese Funktionen aber durchaus noch fehlen.

dialog --checklist Titel Anzeigehöhe Anzeigebreite Auswahlzeilen [ Kurztaste Beschreibung Status ]

Auswahlliste mit der Überschrift Titel. Das Fenster in der Größe Anzeigehöhe mal Anzeigebreite umfasst Auswahlzeilen Einträge. Jeder Eintrag besteht aus der Kurztaste Kurztaste sowie der zugehörigen Beschreibung Text und hat entweder den Status "on" oder "off".

Beendet der Benutzer die Auswahl mit OK, endet Dialog mit dem Exit Value "0" und liefert die Kurztasten aller aktivierten Einträge, in Anführungszeichen eingeschlossen und mit Leerzeichen getrennt, über die Standard-(Fehler-)Ausgabe zurück. Bricht der Benutzer die Auswahl ab, liefert Dialog den Exit Value "1"; drückt er [Esc], gibt Dialog den Wert "255" zurück.

dialog --inputbox Text Anzeigehöhe Anzeigebreite [ Standardwert ]

Texteingabefeld der Größe Anzeigehöhe mal Anzeigebreite, in dem Text und eine Eingabezeile stehen. Wird Standardwert beim Aufruf übergeben, füllt Dialog die Eingabezeile entsprechend.

Die Länge der Eingabezeile ist theoretisch nicht begrenzt. Der Autor empfiehlt aber, keine Eingaben länger als 255 Zeichen abzufragen. Eine mehrzeile Eingabe lässt sich nicht realisieren.

Bestätigt der Benutzer die Eingabe mit OK, liefert Dialog den Inhalt der Eingabezeile per Standard-(Fehler)-Ausgabe zutück, der Exit Value lautet "0". Bei Abbruch gibt Dialog als Exit Value "1" zurück; drückt der Benutzer [Esc], liefert es "255".

dialog --menu Titel Anzeigehöhe Anzeigebreite Menüzeilen [ Kurztaste Menütext ]

Auswahlmenü, über dem Titel angezeigt wird. Das Fenster der Größe Anzeigehöhe mal Anzeigebreite umfasst Menüzeilen Menüeinträge. Jeder Menüeintrag besteht aus der Kurztaste Kurztaste und der zugehörigen Beschreibung des Menüpunkts, Menütext. Wird ein Menüpunkt ausgewählt, liefert Dialog die Kurztaste des betreffenden Menüpunkts über Standard-(Fehler-)Ausgabe zurück und endet mit dem Exit Value "0". Bricht der Benutzer die Auswahl ab, liefert Dialog den Exit Value "1"; drückt er [Esc], gibt Dialog den Wert "255" zurück.

dialog --msgbox Meldung Anzeigehöhe Anzeigebreite

Benachrichtigungsfeld in der Größe Anzeigehöhe mal Anzeigebreite, in der die Meldung ausgegeben wird. Der Benutzer kann lediglich mit OK bestätigen. Dialog gibt dann den Exit Value "0" zurück. Drückt der Anwender [Esc], liefert es den Exit Value "255".

dialog --radiolist Titel Anzeigehöhe Anzeigebreite Auswahlzeilen [ Kurztaste Beschreibung Status ]

Auswahlliste ähnlich --checkbox, über der Titel angezeigt wird. Das Fenster der Größe Anzeigehöhe mal Anzeigebreite umfasst Auswahlzeilen Einträge. Jeder Eintrag besteht aus der Kurztaste Kurztaste sowie der zugehörigen Beschreibung Text.

Im Unterschied zur --checkbox darf jedoch nur genau ein Eintrag den Status "on" haben. Alle anderen müssen den Status "off" haben, anderenfalls funktioniert die Auswahl nicht.

Der Benutzer kann nur genau einen Eintrag aktivieren. Beendet er die Auswahl mit OK, liefert Dialog die Kurztaste des aktivierten Eintrags über die Standard-(Fehler-)Ausgabe zurück und terminiert mit Exit Value "0". Bricht der Benutzer die Auswahl ab, liefert Dialog den Exit Value "1". Drückt er [Esc], beendet Dialog mit dem Rückgabewert "255".

dialog --textbox Dateiname Anzeigehöhe Anzeigebreite

Dateibetrachter, der den Inhalt der Datei Dateiname in einem Fenster der Größe Anzeigehöhe mal Anzeigebreite anzeigt. Der Benutzer kann beliebig im Text blättern und den Betrachter mit Verlassen beenden, wobei Dialog den Exit Value "0" zurück liefert. Drückt der Benutzer [Esc], terminiert Dialog mit dem Exit Value 255.

dialog --yesno Meldung Anzeigehöhe Anzeigebreite

Ja/Nein-Abfrage in der Größe Anzeigehöhe mal Anzeigebreite, in der die Meldung ausgegeben wird. Im Gegensatz zum Benachrichtigungsfeld kann der Benutzer zwischen Ja (Exit Value "0") und Nein (Exit Value "1") wählen. Drückt er [Esc], lautet der Rückgabewert "255".

Infos

[1] Mirko Dölle: "Komfortable Dialoge", LinuxUser 02/2004, Seite 42; Online unter http://www.linux-user.de/ausgabe/2002/02/042-pcorner/pcorner7.html

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Teil 7: Benutzerfreundliche Ein-/Ausgabe
    Im letzten Teil des Bash-Programmierkurses geht es um die benutzerfreundliche Gestaltung von Eingaben und Dialogen am Beispiel der Programme dialog, gdialog und kdialog.
  • Shell-Skripte mit grafischen Dialogen
    Dass sich Shell-Programmierung und grafische Oberflächen nicht ausschließen, zeigt KDialog: Nie war es leichter, Shell-Skripte um User-Interaktion zu ergänzen.
  • Textbasierte User-Interfaces (Teil 1)
    Die Kommandozeile halten viele Anwender für trist und schlecht bedienbar. Das muss aber nicht so sein: Mithilfe von Dialog und Whiptail werten Sie Ihre eigenen Skripts unkompliziert mit Fenstern, Menüs und Dialogen auf.
  • Klacker, Klacker, Klick, Klick
    Häufig erledigen Skripte ihre Aufgaben unsichtbar im Hintergrund. Mancher User wünscht sich aber ein visuelles Feedback. Dank Zenity und KDialog fügen sich Ihre Skripte nativ in die KDE- oder Gnome-Umgebung ein.
  • Mehr Komfort
    Von einfachen Abfragen bis hin zu komplexen Menüs: Mit dem Toolkit Dialog bauen Sie eine grafische Oberfläche für Shell-Skripte, die oft nicht mehr als eine zusätzliche Zeile brauchen.
Kommentare

Infos zur Publikation

LU 11/2017: Server für Daheim

Digitale Ausgabe: Preis € 8,50
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 3 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...
Backup mit KUP unter Suse 42.3
Horst Schwarz, 24.09.2017 13:16, 3 Antworten
Ich möchte auch wieder unter Suse 42.3 mit Kup meine Backup durchführen. Eine Installationsmöglic...
kein foto, etc. upload möglich, wo liegt mein fehler?
kerstin brums, 17.09.2017 22:08, 5 Antworten
moin, zum erstellen einer einfachen wordpress website kann ich keine fotos uploaden. vom rechne...
Arch Linux Netzwerkkonfigurationen
Franziska Schley, 15.09.2017 18:04, 0 Antworten
Moin liebe Linux community, ich habe momentan Probleme mit der Einstellung des Lan/Wlan in Arc...