|
dialog
dialog ist ein Programm, welches innerhalb eines
Shellskriptes Interaktionen mit dem Benutzer ermöglicht. Unter einer einheitlichen Oberfläche bietet dialogeine Vielzahl von Interaktionsmöglichkeiten wie z. B.:- Informations-Box / Nachrichten-Box
- Ja-Nein-Box
- verschiedene Menu-Boxen
- Text-Box
- Eingabe-Box
dialog bietet im einzelnen folgende Interaktionsmöglichkeiten:
-
infobox: Übermittlung einer Nachricht an den Benutzer
Auf der Oberfläche erscheint ein Fenster mit einer
Information.
- msgbox: Übermittlung einer zu bestätigenden Nachricht
an den Benutzer
Auf der Oberfläche erscheint ein Fenster mit einer
Nachricht, die vom Benutzer mit "OK" quittiert werden
muß.
- yesno: Einfache Benutzerabfrage
Auf der Oberfläche erscheint ein Fenster mit einer
Frage, die vom Benutzer mit "Yes" oder "No" beantwortet
werden muß.
- menu: Auswahl-Menu für den Benutzer
Auf der Oberfläche erscheint ein Fenster mit einem
Auswahl-Menu, aus dem sich der Benutzer einen
Menu-Punkt auswählen kann. Die Auswahl ist auf einen
einzigen Menu-Punkt beschränkt.
- checklist: Auswahl von mehreren Menu-Punkten
Auf der Oberfläche erscheint ein Auswahl-Menu, aus dem
sich der Benutzer einen oder mehrere Menu-Punkte
auswählen kann.
- radiolist: Auswahl eines Menu-Punktes mit
Vorauswahl
Auf der Oberfläche erscheint ein Auswahl-Menu, bei dem
bereits ein Menu-Punkt ausgewählt ist. Der Benutzer kann
den Menu-Punkt akzeptieren oder aber einen anderen
Menu-Punkt wählen.
- textbox: Anzeige einer Textdatei
Auf der Oberfläche erscheint ein Fenster mit
Scroll-Balken, in dem sich der Benutzer eine Text-Datei
ansehen kann.
- inputbox: Eingabe von Daten
Auf der Oberfläche erscheint ein Fenster, in das
der Benutzer Daten eingeben kann.
Aufruf:
dialog --title "Fenstertitel" \
--backtitle "Hintergrundtitel" \
--[infobox | yesno | menu | ...] \
Fensterinhalt u. -abmaße
aufgerufen. Nach Beendigung von dialog durch den Benuter
(Abbruch über Escape-Taste, "OK" / "Yes" bzw. "Cancel" / "No")
liefert dialog folgende Informationen zurück:
- exit-status von dialog
Der exit-status von dialog wird an stdout
zurückgegeben. Dabei bedeutet ein Rückgabewert von 0 = Beendigung über "OK"/"Yes",
1 = Beendigung über "Cancel"/"No" und 255 = Beendigung über "Escape-Taste"
- ausgewählte Menu-Punkte / abgefragte Benutzerdaten
Die vom Benutzer ausgewählten Menu-Punkte bzw.
eingegebenen Benutzerdaten werden auf stderr zurückgegeben.
Beispiel:
dialog --backtitle "$BTITLE" --title "Auswahl-Menu" \
--menu "Bitte treffen Sie Ihre Auswahl:" 12 45 3 \
"Pizza Regina" "heute besonders köstlich zubereitet" \
"vino chianti" "beschränken wir uns auf das wesentliche" \
"grappa" "reduced to the max"\
2 > dialog-dat.tmp
Bei Beendigung von dialog über "OK" wird der ausgewählte
Menu-Punkt über den Standard-Fehlerkanal ausgegeben.
Da der Standard-Fehlerkanal in die Datei dialog-dat.tmp
umgelenkt ist, wird der ausgewählte Punkt demnach in diese Datei
geschrieben und kann von dort z. B. mit read AUSWAHL < dialog-dat.tmp
gelesen werden.
Beim Einbinden von dialog-Abfragen in Skripte müssen
zwei Dinge besonders beachtet werden:
- Übergabe von Variablen in Anführungszeichen
Wenn Titel, Hintergrundtitel bzw. Texte in Form von Variablen
übergeben werden, so sind die Variablen in Anführungszeichen
zu setzen, z. B.: --title "$TITEL"
- Fenstergröße nicht größer als Bildschirmgröße
Bei jedem Aufruf muß dialog die
Fenstergröße mitgeteilt werden: Höhe in Bildschirmzeilen, Breite
in Zeichen. Die sich daraus ergebende Fenstergröße darf keinesfalls größer sein
als die Bildschirmgröße!
|
|
|