Benutzer-Eingaben per Fehlerausgabe

Die Antwort bei diesem Dialog-Aufruf bildet das Tastenkürzel (Buchstabe) des Menüpunkts, das der Benutzer ausgewählt hat. Dafür eignet sich der Rückgabewert (Exit Value) des Programms nicht, Dialog schreibt den Buchstaben auf die Standard-(Fehler-)Ausgabe. Deshalb ruft Zeile 57 die in den Zeilen 2 bis 10 gewählte Dialog-Variante schließlich mittels eval auf und leitet die Ausgabe, also die Auswahl des Benutzers, in die Datei ~/.termine.in um. Der read-Aufruf in Zeile 58 liest aus der Datei ~/.termine.in und speichert das Ergebnis in der Variablen REPLY.

Den Exit Value von Dialog berücksichtigt Zeile 57 nicht. Er lautet "0", wenn der Benutzer eine Auswahl gemacht hat, oder "1", wenn der Benutzer die Eingabe mit [Esc] oder Abbrechen verlässt.

Auch bei der Texteingabe mittels des Dialog-Parameters --inputbox in Zeile 62 und 63 reicht die Rückgabe eines Zahlenwerts via Exit Value nicht aus. Wie beim Menü schreibt Dialog die Eingabe des Benutzers auf die Standard-(Fehler-)Ausgabe. Bricht der Anwender die Eingabe ab, teilt Dialog das wie gehabt über den Exit Value mit.

Antwort als Exit Value

Anders laufen die Dinge bei einer einfachen Ja-Nein-Auswahl mit dem Parameter --yesno, wie in Zeile 71 und 72: Hier wird nur der Exit Value aus der Spezial-Variablen "$?" der Bash gelesen. "0" bedeutet an dieser Stelle "Ja", "1" dagegen "Nein".

Bei der Fehlerausgabefunktion in Zeile 74 bis 78 ist der Rückgabewert nicht von Belang. Dialog wird hier mit der Option --msgbox aufgerufen, was den dahinter stehenden Text in einem kleinen Fenster auf dem Bildschirm anzeigt. Der Benutzer hat nur die Möglichkeit, OK zu wählen.

Die Verwendung der Ausgabefunktionen von Zeile 20 bis 78 zeigt das Hauptprogramm ab Zeile 136. In den Zeile 161 und 162 sehen Sie das Hauptmenü des Termin-Clients: Tabulatoren trennen die Tastenkürzel in der Zeile 161; das gilt auch für die Beschreibungen der einzelnen Menüpunkte. Dies erlaubt, in den Beschreibungen Leerzeichen zu verwenden.

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 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(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

Huawei
Pit Hampelmann, 13.12.2017 11:35, 1 Antworten
Welches Smartphone ist für euch momentan das beste? Sehe ja die Huawei gerade ganz weit vorne. Bi...
Fernstudium Informatik
Joe Cole, 12.12.2017 10:36, 2 Antworten
Hallo! habe früher als ich 13 Jahre angefangen mit HTML und später Java zu programmieren. Weit...
Installation Linux mint auf stick
Reiner Schulz, 10.12.2017 17:34, 3 Antworten
Hallo, ich hab ein ISO-image mit Linux Mint auf einem Stick untergebracht Jetzt kann ich auch...
Canon Maxify 2750 oder ähnlicher Drucker
Hannes Richert, 05.12.2017 20:14, 4 Antworten
Hallo, leider hat Canon mich weiterverwiesen, weil sie Linux nicht supporten.. deshalb hier die...
Ubuntu Server
Steffen Seidler, 05.12.2017 12:10, 1 Antworten
Hallo! Hat jemand eine gute Anleitung für mich, wie ich Ubuntu Server einrichte? Habe bisher...