26.02.2014 Aufrufe

LinuxUser Optimale Skripte (Vorschau)

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Dialog<br />

Schwerpunkt<br />

aus geometrischen Anweisungen zusammen.<br />

Am Anfang der Anweisung<br />

zum Gestalten geben Sie den Titel und<br />

einen Hintergrundtitel an. Ferner erwarten<br />

die Befehl am Ende zwingend Angaben<br />

zur Geometrie.<br />

Die Zeiten des Kästchenzählens sind<br />

aber dank Dialog vorbei: Wollen Sie keine<br />

Angaben für Höhe (Zeilen) und Breite<br />

(Zeichen) machen, geben Sie einfach 0<br />

0 an. Das klappt bei den meisten Anweisungen.<br />

Das Tool passt die Proportionen<br />

dann automatisch an. Listing 6 zeigt den<br />

Aufbau des Befehls.<br />

In den Anweisungen zum Fenstertyp<br />

geben Sie an, was in dieser Codezeile<br />

passiert. Möchten Sie, dass der Benutzer<br />

etwas liest, eingibt oder entscheidet?<br />

Auf der folgenden Doppelseite finden<br />

Sie eine Auswahl an Möglichkeiten.<br />

Während die Ja/​Nein-Frage und die<br />

Nachrichtenbox stets auf eine Eingabe<br />

warten, dient die Infobox zur reinen Ausgabe.<br />

Im Zusammenhang mit sleep zeigen<br />

Sie so Nachrichten für eine bestimmte<br />

Zeit an. Anstelle von sleep ließen<br />

sich natürlich andere Programme<br />

einbinden.<br />

Sie haben die Möglichkeit, die Ja/​<br />

Nein-Frage um je eine Schaltfläche zu<br />

erweitern. Eine Schaltfläche mit eigener<br />

Beschriftung erhalten Sie mit folgenden<br />

zusätzlichen Parametern:<br />

‐‐extra‐button ‐‐extra‐label "Text"<br />

Beim Betätigen erhalten Sie den Rückgabewert<br />

3. Die zweite Erweiterungsmöglichkeit<br />

besteht mit der Hilfe-Fläche<br />

‐‐help‐button. Sie benötigen hier keine<br />

weiteren Angaben zur Beschriftung, der<br />

Rückgabewert beträgt 2. Zusammen mit<br />

Ja (0) und Nein (1) erzeugt das Widget<br />

also vier Rückgabewerte.<br />

Das kleine Skript aus Listing 7 zeigt<br />

die Wirkungsweise. Sie sehen darin, wie<br />

Sie eine Schaltfläche abweichend be-<br />

Listing 6<br />

$ dialog ‐‐title "Titel"<br />

‐‐backtitle "Hintergrundtitel"<br />

Weitere Anweisungen 0 0<br />

Listing 5<br />

#! /bin/sh<br />

# Belegung Beispieldaten<br />

# An diese Stelle würde ein Datenbankzugriff integriert<br />

a="Herr"<br />

b="Pano Garçon"<br />

c="Testsystem 123"<br />

d="90003 Nürnberg"<br />

while true; do<br />

clear<br />

echo "‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐"<br />

echo " Adressbearbeitung"<br />

echo "‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐"<br />

echo "F‐Nr. | | Wert"<br />

echo " 1 | Anrede: | "$a<br />

echo " 2 | Name: | "$b<br />

echo " 3 | Straße: | "$c<br />

echo " 4 | PLZ/Ort: | "$d<br />

echo "‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐+‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐"<br />

echo "Aktionen: [F‐Nr]: Zeile ändern, [s] speichern,"<br />

echo "[q] Abbruch"<br />

echo ‐n "Aktion: ";read wn<br />

if [ "$wn" = "1" ]; then<br />

a=$(readpreprompt "Zeile $wn: " "$a")<br />

elif [ "$wn" = "2" ]; then<br />

b=$(readpreprompt "Zeile $wn: " "$b")<br />

elif [ "$wn" = "3" ]; then<br />

c=$(readpreprompt "Zeile $wn: " "$c")<br />

elif [ "$wn" = "4" ]; then<br />

d=$(readpreprompt "Zeile $wn: " "$d")<br />

elif [ "$wn" = "s" ]; then<br />

echo "Hier würde in die Datenbank geschrieben werden"<br />

break<br />

elif [ "$wn" = "q" ]; then<br />

exit<br />

fi<br />

done<br />

echo "‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐"<br />

echo $a<br />

echo $b<br />

echo $c<br />

echo $d<br />

3 Mit ein paar<br />

Zeilen Code haben<br />

Sie eine einfache<br />

Maske<br />

zum Bearbeiten<br />

von Datensätzen<br />

aus einer<br />

Datenbank erstellt.<br />

03.2014 www.linux-user.de<br />

33

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!