Unix-Validierungstools - Einführung
Was ist (neben der Portabilität zwischen Unix-Systemen und Linux) so toll an diesen Tools?
- Sie nehmen dem Script-Programmierer jede Menge Arbeit ab:
- Anzeige einer Eingabeaufforderung
- Abfrage der Benutzereingabe
- Validieren der Eingabe nach Regeln, die durch Kommandozeilenargumente bestimmt werden
- Anzeige einer Fehlermeldung bei Falscheingaben, danach erneute Eingabeaufforderung
- Anzeige eines Hilfetextes bei Drücken von '?', danach erneute Eingabeaufforderung
- ...
- Für alle Meldungen gibt es Defaults. Im Idealfall braucht man als Script-Programmierer also nur das Tool ohne jegliche Option aufrufen - es wird trotzdem eine lokalisierte Prompt-, Fehler- und Hilfemeldung erscheinen.
- Sie bieten eine über die diversen Tools hinweg zum großen Teil einheitliche Syntax. Viele Optionen sind toolübergreifend verfügbar (individuelle Prompt-, Hilfe- und Fehlertexte, Defaults, ...)
- Sie sind auf keinerlei Bildschirmsteuerung angewiesen, sie laufen also noch problemlos über eine serielle Verbindung mit einem VT100-Terminal (durchaus benutzbar bei langsamen Modemverbindungen - naja, einen Akustikkoppler wird wohl niemand mehr in Gebrauch haben ;-)
- Ähnlich wie beim Ur-vi ist die normale alphanumerische Tastatur für alle Eingaben ausreichend. Die einzige Taste, die kein "normales" Zeichen ist, ist CTRL-D für das Beenden des Blätterns in ckitem.
Folgende Tools stehen zur Verfügung (die möglichen Optionen sind in den Manuals genauer erklärt):
- ckdate: Abfrage eines Datums (in einem Default- oder festgelegten Format)
- ckgid: Abfrage einer Benutzergruppe des Systems
- ckint: Abfrage eines Integer, per Default zur Basis 10, Basis zwischen 2 und 36 möglich
- ckitem: Anzeige einer Auswahl von Items, Abfrage eines Items; mit zahlreichen möglichen Optionen
- ckkeywd: Eingabe aus einer Liste möglicher Schlüsselwörter
- ckpath: Eingabe eines Pfadnamens; wahlweise mit Vorgabe des Typs, der Berechtigungen, Existenz, ...
- ckrange: Abfrage eines Integer, per Default zur Basis 10, Basis zwischen 2 und 36 möglich; Angabe des zulässigen Maximums und / oder Minimums ist möglich
- ckstr: Eingabe einer Zeichenkette, optional mit Längenbegrenzung oder zu prüfenden regulären Ausdrücken.
- cktime: Abfrage einer Zeit (in einem Default- oder festgelegten Format)
- ckuid: Abfrage eines Benutzernamens des Systems
- ckyorn: Ja/Nein-Abfrage
- ckcont: Das ist eine Erweiterung, die nicht auf Unix-Systemen existiert. Sie ist ganz simpel, es wird einfach die Prompt-Meldung angezeigt, nach RETURN geht es weiter. Ich habe das oft vermisst, z. B. um dem Benutzer die Gelegenheit zu geben, die Ausgabe eines Programms zu lesen und dann fortzufahren. Man kann dafür natürlich auch ckyorn mit Default "Ja" nutzen - aber warum so umständlich? Ich müsste ja immer wenigstens die Prompt-Message definieren und ein "quit" ist da auch überflüssig.
Zu jedem Tool gibt es (wenn es sinnvoll ist), die unter Unix so genannten "visuellen Tools". Diese bedienen Teilaufgaben und können also auch außerhalb einer Eingabe-Abfrage benutzt werden. Es gibt:
- err*: Anzeige der Fehlermeldung
- help*: Anzeige des Hilfetextes
- val*: Validierung einer Eingabe
Ich denke, die Vorteile liegen auf der Hand: Universelle Einsatzmöglichkeit auf jeder Konsole gepaart mit vielfältigen Optionen, einfacher Bedienung für den Benutzer und einfachem Gebrauch für den Programmierer. Deshalb habe ich das Perl-Modul auch so aufgebaut, dass es von jedem Perl-Programm aus genauso simpel zu benutzen ist.

