Beispiel: echo "\033XNnotepad\033\\"
Im Lieferumfang befindet sich das Shell-Skript winexec. Dieses Skript erspart die direkte Angabe der Escape-Sequenz und läßt sich wie ein UNIX-Befehl aufrufen...
Beispiel: winexec "notepad c:/autoexec.bat"
Mit einer entsprechenden Sequenz in der .profile wird an jedem PC-Arbeitsplatz immer die persönliche Tastaturbelegung geladen. Hierzu muß die persönliche Tastaturbelegung an jedem Arbeitsplatz verfügbar sein. Dies kann entweder durch lokal gehaltene Kopien oder durch eine global verfügbare Datei im Netz erreicht werden.
Beispiel: echo "\033XKc:/terms/otto.key\033\\"
Falls kein Netz vorhanden ist, und die persönliche Tastaturtabelle nicht überall verfügbar ist, kann die Tastaturbelegung auch als UNIX-Datei gehalten und mit dem Terms97801-Filetransfer vorher auf den PC übertragen werden.
Mit der Sequenz <ESC>XT, gefolgt von dem Namen einer Tastaturschablone und <ESC>\ wird diese Tastaturschablone geladen. Falls die Schablone noch nicht angezeigt wurde, wird sie durch obige Escape-Sequenz aktiviert. Mit einem leeren Namen läßt sich die Schablone wieder ausschalten.
Werden verschiedene UNIX-Anwendungen von den Anwendern durch ein Menüsystem ausgewählt, kann dieses leicht auf ein automatisches Laden der passenden Tastaturschablone erweitert werden.
Mit dem Laden einer Tastaturschablone können weitere Einstellungen für Terms97801 verbunden werden. Befindet sich in der Ini-Datei eine Sektion mit dem gleichen Namen wie die Tastaturschablone (ohne Pfad und Erweiterung), so werden aus dieser Sektion die Einstellungen für die Zwischenablage, die Attributfarben und die Maussteuerung eingelesen. Näheres findet sich im nächsten Abschnitt und in Kapitel 9.
Im Lieferumfang befindet sich das Shell-Skript lt (load template) und lk (load keyboard). Diese Skripte ersparen die direkte Angabe der Escape-Sequenzen und lassen sich wie ein UNIX-Befehl aufrufen.
Beispiel: lk c:/terms/otto.key
lt c:/terms/tabellen/hit50.sbl
<ESC>XA<Ini-Sektion><ESC>\ für Attribute
<ESC>XC<Ini-Sektion><ESC>\ für Clipboard
<ESC>XM<Ini-Sektion><ESC>\ für
Maussteuerung
<ESC>XB<Ini-Sektion><ESC>\ für Cursor
<ESC>XU<Ini-Sektion><ESC>\ für
Filetransfer
<ESC>XX<Ini-Sektion><ESC>\ für Connect
Es wird nach der angegebenen Ini-Sektion gesucht und die Einträge werden
so eingelesen, als ob sie in der normal benannten Ini-Sektion stünden.
Wird keine Ini-Sektion angegeben, so wird die normal benannte Ini-Sektion
eingelesen. Wird eine nicht existierende Ini-Sektion angegeben, so werden
die Default-Werte wie beim ersten Start von Terms97801 aktiviert.
Passende Ini-Sektionen werden am einfachsten dadurch erzeugt, daß eine
vorhandene Ini-Sektion dupliziert und umbenannt wird.
HINWEIS: Die ersten drei Escape-Sequenzen werden durch das Laden einer Tastaturschablone aktiviert. Dabei gilt: Name der Schablone ohne Pfad und Suffix wird als Name der Ini-Sektion verwendet.
Beispiel: Eigene Farben durch Escape-Sequenz einstellen
Mit der Filetransfer- Sektion kann nicht nur die
Carridge-Return-Linefeed-Ersetzung
gesteuert werden, sondern auch der Drucker eingestellt werden.
Mit der Connect-Sektion können Optionen wie 'Trennen nur durch
Host' oder 'Schließe bei Verbindungsende' von UNIX aus aktiviert
werden. Auch die Titelzeile kann so gesetzt werden.
Die obigen Escape-Funktionen gibt es auch mit Kleinbuchstaben. In diesem Fall wird keine Angabe der Ini-Sektion benötigt, da diese Funktionen die zuvor eingestellten Werte wieder aktivieren. Dies kann nötig werden, wenn mit obigen Escape-Sequenzen Einstellungen vorgenommen wurden und durch z.B. durch einen Benutzerabbruch die alten Werte wieder hergestellt werden sollen.
<ESC>Xt<ESC>\ für letzte Tastaturschablone
<ESC>Xa<ESC>\ für letzte Attribute
<ESC>Xc<ESC>\ für letzte Clipboard-Einstellung
<ESC>Xm<ESC>\ für letzte Maussteuerung
<ESC>Xb<ESC>\ für letzte
Cursoreinstellung
Mit der Sequenz <ESC>XO, gefolgt einem Text und
<ESC>\ wird dieser Text als Windows-Nachricht mit OK-Knopf
angezeigt. Nach Betätigen des OK-Knopfs wird ein 'newline' an UNIX gesendet,
so daß in einem Shell-Skript mit einem read auf die
Bestätigung gewartet werden kann. Zum Beipiel:
echo "\033XOSie haben Post\033\\"; read
Abb. 28: Windows-OK-Dialog mit Terms97801-Escape-Sequenz
Mit der Sequenz <ESC>XY, gefolgt von einem Text und <ESC>\ wird dieser Text als Windows-Dialog mit Ja/Nein-Auswahl angezeigt. Nach dem Drücken einer der beiden Knöpfe werden Y bzw. N und 'newline' an UNIX gesendet.
echo "\033XYJa oder Nein\033\\"; read ANSWER
Abb. 29: Windows-Ja/Nein-Dialog mit Terms97801-Escape-Sequenz
Mit der Sequenz <ESC>XE, gefolgt von einem Text und <ESC>\ wird dieser Text als Beschriftung eines Windows-Eingabe-Dialogs angezeigt. Die Eingabe wird nach Bestätigung mit dem OK-Knopf an UNIX gesendet. Befindet sich im Text ein Strichpunkt, so wird alles, was dem Strichpunkt folgt, als Vorbelegung für das Eingabefeld verwendet.
Der Baustein für ein Shell-Skript kann z.B. so aussehen:
stty -echo
echo "\033XE\c"
echo "Bitte geben Sie den Monat ein;Januar\033\\"
read ANSWER
echo $ANSWER
stty echo
Zur Auswahl aus mehreren Möglichkeiten kann ein Dialog mit einer Radioschalter- oder Kästchenschalter-Auswahl angezeigt werden.
Syntax für Kästchenschalter-Auswahl:
<ESC>XQ<Frage>;<An/Aus><Schaltertext1>;......;<ESC>\
Syntax für Radioschalter-Auswahl:
<ESC>XR<Frage>;<An/Aus><Schaltertext1>;......;<ESC>\
Es sind maximal 16 Schalter zulässig; der String darf maximal aus 256 Zeichen bestehen. Die Auswahl des Benutzers wird mit durch 'blank' getrennten Zahlen zurückgemeldet. Beim Abbruch wird 0 an den Host gesandt.
Beispiele:
echo "\033XQWas möchten Sie essen?; \
Suppe;xHauptgericht;xNachtisch;\033\\"
Abb. 30: Windows-Kästchen-Auswahl mit Terms97801-Escape-Sequenz
echo "\033XRWie geht's?; schlecht; mittel;xgut;\033\\"
Abb. 31: Windows-Radioschalter-Auswahl mit Terms97801-Escape-Sequenz
Als ausführlicheres Beispiel für die Benutzerdialoge befindet sich im Lieferumfang das Skript tour.
Auch die Überprüfung, ob eine bestimmte Datei oder ein bestimmtes
Verzeichnis vorhanden ist, kann gelegentlich nützlich sein. Mit der
Escape-Sequenz
<ESC>XZ<Dateiname><ESC>\
wird versucht, die angegebene Datei zu öffnen. Gelingt dies, so wird
'true', gefolgt von '0' oder '1' an den Host gesandt. 0 bedeutet, daß
es sich um einen wechselbaren Datenträger handelt. 1 bedeutet, daß
es sich um eine Festplatte handelt.
Kann die Datei nicht geöffnet werden, wird 'false' gefolgt vom Fehlercode an den Host gesandt. Als Fehlercode wird der Wert 2 für "Datei existiert nicht" oder 3 "Pfad existiert nicht" gesendet. Die Existenz eines Verzeichnisses läßt sich durch die Frage nach einer Datei in diesem Verzeichnis realisieren. Wird 'false' mit dem Fehlercode 3 zurückgegeben, so existiert das Verzeichnis nicht. Als Beispiel hierfür befinden sich im Lieferumfang die Skripte testfile und testdir.
Für die Interaktion mit dem/r Benutzer/in bei Dateiübertragungen sind Funktionen zur Auswahl einer Datei und eines Verzeichnisses vorhanden.
Mit der Escape-Sequenz
<ESC>XF<Vorgabe-Dateiname><ESC>\
wird ein Dateiauswahl-Dialog und mit
<ESC>XD<Vorgabe-Verzeichnis><ESC>\
wird ein Verzeichnisauswahl-Dialog angezeigt. Der ausgewählte Dateiname bzw. das ausgewählte Verzeichnis wird an den Host gesandt. Der Pfad wird in UNIX-Notation, also mit / statt \ zurückgegeben. Im Fehlerfall wird 'error', beim Abbruch durch den Anwender 'canceled' gesandt.
Beispiel:
$ echo "\033XDC:/DOS\033\\"
Abb. 32: Windows-Verzeichnis-Auswahl mit Terms97801-Escape-Sequenz
Das Beispiel tft verwendet diese Escape-Sequenz zur Auswahl eines Dateinamens. Das Beispiel tounix verwendet die Escape-Sequenz zur Auswahl eines Verzeichnisses.
Mit
<ESC>XG<Pfad/name.suffix><ESC>\
wird ebenfalls ein Dateiauswahl-Dialog angeboten. Im Unterschied zur Funktion
von <ESC>XF können in dem Dialog mehrere Dateien
ausgewählt werden. Die Übergabe der ausgewählten Dateien erfolgt
zeilenweise; die erste Zeile gibt den Pfad an, es folgen die Dateien; die
letzte Zeile besteht aus der Zeichenkette EOF.
Im Lieferumfang befindet sich das Beispiel selfiles .
Mit
<ESC>XL<Pfad><ESC>\
wird der Inhalt des angegebenen Verzeichnisses ausgegeben. Die Übergabe
erfolgt zeilenweise; die letzte Zeile besteht aus der Zeichenkette EOF.
Im Lieferumfang befindet sich das Beispiel getdir .
H für verstecken,
I für iconisieren,
M für maximieren und
S für wiederherstellen.
Mit
<ESC>XV<Buchstabe><ESC>\
können DOS- und Windows-Version und das DOS-Environment abgefragt werden.
Als <Buchstabe> können folgende Werte eingesetzt werden:
D für DOS-Version,
W für Windows-Version,
E für DOS-Environment und
F für Windows-Flags
Im Lieferumfang befinden sich die Beispiel-Skripte getver und getenv.
Anmerkung: Unter WindowsNT wird statt des DOS-Environments das NT-Enviroment an UNIX gesendet.
Beispiel: Ausgabe von getver:
$ ./getver
Ihre Windows-Version: WfW 3 10
Ihre DOS-Version: 6 22
$