.ds RH \f3Monitor\f1 .ds LH Referenz_Manual .ds RF \f3QUEL\f1 .ds CH - % - .bp .RE .NH 3 .ft B Der interaktive Terminal\-Monitor * .ft R .LP .NH 4 .ft B Inhalt und Leistung * .ft R .LP Der interaktive Terminal\-Monitor ist der front\-end\-Prozess von \*(yy\. Er erm\o'o"'glicht es, eine Anfrage zu formulieren und sie zu erg\o'a"'nzen, bevor sie \*(yy\ \o'u"'bergeben wird. Zur Ausf\o'u"'hrung von \o'A"'nderungen an der Anfrage im .ft B "Monitor\-Puffer" .ft R kann ein \*(xx\- Text\-Editor nach eigener Wahl benutzt werden. .sp 1 .NH 4 .ft B Nachrichten und Prompt\-Meldungen * .ft R .LP Der Terminal\-Monitor gibt eine Reihe von Meldungen ab, um den Nutzer \o'u"'ber den Status des Monitors und des Monitor\-Puffers zu informieren. .LP Nach Anmeldung des Nutzers wird eine login\-Nachricht ausgegeben, die die Versionsnummer von \*(yy\ und die login\-Zeit anzeigt. Ihr folgt die Ausgabe des dayfile, das Informationen f\o'u"'r alle Nutzer enth\o'a"'lt. .LP Sobald \*(yy\ eingabebereit ist, wird die Meldung .DS L ING-db> * .DE ausgegeben. Sie zeigt an, dass der Monitor\-Puffer leer ist. Die Meldung .DS L ING-db: * .DE zeigt an, dass der Monitor\-Puffer noch Informationen enth\o'a"'lt. Nach einem \ego\-Kommando wird der Monitor\-Puffer automatisch gel\o'o"'scht (autoclear-Funktion), sobald nachfolgend eine weitere Anfrage eingegeben wird, nicht aber, wenn danach zuerst ein Kommando folgt, das sich auf den Monitor\-Puffer bezieht. Solche Kommandos sind \eappend, \eedit, \eprint, \elist, \eeval und \ego. Wenn man z.B. eingibt: .br help parts .br \ego .br print parts .br enth\o'a"'lt der Monitor\-Puffer .br print parts .br Wenn man dagegen eingibt .br help parts .br \ego .br \eprint .br print parts .br enth\o'a"'lt der Monitor\-Puffer .br help parts .br print parts .br Am Anfang jeder Eingabe-Zeile wird der 2. Prompt von \*(yy\, in der Regel ein Stern ("*"), ausgegeben, sobald der Monitor auf eine Eingabe des Nutzers wartet. .NH 4 .ft B Kommandos * .ft R .LP Es gibt eine Anzahl von Kommandos, die vom Nutzer eingesetzt werden k\o'o"'nnen, um mit dem Monitor\-Puffer zu arbeiten oder die Nutzer-Umgebung einzurichten. Kommandos beginnen mit dem Kommandokennzeichen, in der Regel mit einem ("\e"). Monitor\-Kommandos werden unverz\o'u"'glich ausgef\o'u"'hrt. .LP Einige Kommandos haben einen Parameter. Dieser besteht aus den signifikanten Zeichen nach dem Kommando bis zum Zeilenende. Hinter solchen Kommandos kann kein anderes Kommando auf der gleichen Zeile folgen. Kommandos ohne Parameter k\o'o"'nnen auf einer Zeile gepackt werden; zum Beispiel .br \edate\ego\edate .br gibt die Zeit vor und nach der Ausf\o'u"'hrung der im Monitor\-Puffer enthaltenen Query aus. .SH .ft B Liste der Kommandos .ft R .LP \em .br \emonitor [parm] .IP Kommandokennzeichen einstellen .br Der Parameter ist das Kennzeichen. Wenn er fehlt, wird der Standard eingesetzt. .LP \er .br \ereset .IP L\o'o"'schen der Anfrage. Der formulierte Inhalt des Monitor\-Puffers ist unwiederbringlich verloren. .LP \eH .br \eHELP [parm] .IP Es wird eine l\o'a"'ngere Dokumentation als Hilfe angezeigt. Die Paramter sind mit denen von manr(unix) identisch. .LP \ep .br \eprint .IP Druck der anliegenden Query. Der Inhalt des Monitor\-Puffers wird auf dem Nutzer\-Terminal ausgegeben. .LP \el .br \elist .IP Druck der anliegenden Query in der Form, wie sie nach ihrer Transformation durch den Makro\-Prozessor aussieht. Einige Nebeneffekte bei der Arbeit des Makro\-Prozessors, wie die Definition von Makros werden dabei mit ausgef\o'u"'hrt. .LP \ev .br \eeval .IP Makro\-Bearbeitung des Monitor\-Puffers. Das Kommando dient der Definition von Makros. Der Monitor\-Puffer wird anschliessend gel\o'o"'scht. .LP \ee .br \eed .br \eedit [parm] .br \eeditor .IP Ruf eines frei w\o'a"'hlbaren \*(xx\-Text\-Editors zum Editieren des Monitor\-Puffers (s. auch ED, EM, VI, RAND im \*(xx\ Programmer's Manual). Nach Beendigung der Editorarbeit kehrt man automatisch in den Monitor zur\o'u"'ck. Der Monitorpuffer erh\o'a"'lt jetzt den editierten Stand. Wenn dem \ee\-Monitor\-Kommando ein Parameter gegeben wird, wird nicht der Monitor\-Puffer sondern das, durch den Parameter bezeichnete File zum editierenden File. Wenn der Editor mit dem Monitor\-Puffer\p gestartet wird, muss zu dessen \o'A"'nderung nat\o'u"'rlich ein w\-Editor\-Kommando gegeben werden, ehe man dem\p Editor ein anderes File zuordnet. Wenn der Makro "{editor}" definiert ist, wird dieser Makro als ein Pfadname f\o'u"'r einen speziellen Editor genommen, anderenfalls wird der installationsabh\o'a"'ngige Systemeditor benutzt. .LP \eg .br \ego .IP Ausf\o'u"'hrung der anliegenden Query. Der Inhalt des Monitor\-Puffers wird von der Aufl\o'o"'sung der Makros {begintrap} und {endtrap} umgeben, durch den Makro\-Prozessor transformiert und \*(yy\ \o'u"'bermittelt und ausgef\o'u"'hrt. Bei Ausf\o'u"'hrung der tupelorientierten Statements .ft B retrieve .ft R , .ft B append .ft R , .ft B replace .ft R und .ft B delete .ft R wird der Makro {tuplecount} mit der Anzahl der bearbeiteten Tupel definiert (sonst und im Fehlerfall als -1). Vor R\o'u"'ckkehr in den Eingabemodus ruft der Monitor den Makro {continuetrap}. .LP \ea .br \eappend .IP Anf\o'u"'gen an den Monitor\-Puffer. Das Kommando \ea \o'u"'berschreibt nach Ausf\o'u"'hrung einer Query die auto_clear\-Funktion und garantiert, dass der Monitor\-Puffer nicht gel\o'o"'scht wird. .LP \ed .br \etime .br \edate .IP Ausgabe der aktuellen Tageszeit, .br Ausgabe des Datums .LP \es .br \esh .br \eshell [parm] .IP Ruf einer \*(xx\-Shell. Nach Beendigung der Shell kehrt man automatisch in den Monitor zur\o'u"'ck. Wenn das Kommando einen Para\%meter hat, wird die Shell nicht als interaktive Shell gestartet, sondern das mit dem Para\%meter bezeichnete Programm (File) gerufen, dem als Parameter die Stellungsparameter ($1 usw.) \o'u"'ber den Monitor\-Puffer zug\o'a"'nglich sind. Wenn der Makro "{shell}" definiert ist, wird dessen Wert als Pfadname eines Programms benutzt, das mit o.g. Parametern gerufen wird, andernfalls wird ein installationsabh\o'a"'ngiger Kommandointerpreter gerufen. Liegt bei R\o'u"'ckkehr ein Code\ !=\ 0 vor, ruft der Monitor den Makro {exectrap} auf. .LP \eq .br \equit .IP Sitzungsende f\o'u"'r \*(yy\. .LP \ecd .br \echdir [parm] .IP Ver\o'a"'nderung des current directory, auf das durch den Parameter bezeichnete directory. .LP \ei .br \einclude .br \eread parm .IP Das bezeichnete File wird zur Eingabe f\o'u"'r den Monitor. werden in diesem File so behandelt, wie die vom Terminal gegebenen. .LP \ew .br \ewrite parm .IP Der Inhalt des Monitor\-Puffers wird auf das, durch den Parameter bezeichnete File geschrieben. .LP \eb .br \ebranch parm .IP Verzweigung innerhalb eines \einclude File, siehe den folgenden Abschnitt \o'u"'ber Spr\o'u"'nge. .LP \ek .br \emark parm .IP Setzt eine Marke f\o'u"'r ein \ebranch. .br (Parameter ist Labelname) .LP \eh .br \ehelp [parm] .IP Ausgabe des Inhaltsverzeichnisses der Referenz-Hilfen; mit anschliessendem Titel wird eine Kurzinformation zum Kommando gegeben. .LP \e .br .IP Das Zeichen gelangt in den Monitor\-Puffer, irgendeine spezielle Bedeutung des f\o'u"'r das folgende Zeichen wird ignoriert - das erlaubt, das Zeichen "\e" auch als ein normales Zeichen einzugeben (siehe auch .ft B QUEL .ft R \- Zeichenketten). Es ist wichtig, zu vermerken, dass der Makro\-Prozessor die wegblendet, die zum Kaschieren von Begrenzern eingesetzt werden. Im allgemeinen formuliert man also zwei hintereinander, wenn man eines an den Parser senden will (Das ist insgesamt aber so kompliziert, dass man am besten die Verwendung von \o'u"'berhaupt vermeidet.). .NH 4 .ft B Makros ** .ft R .LP Eine genaue Beschreibung der Makros findet man im Abschnitt .ft B Makros. .ft R .NH 4 .ft B Springen ** .ft R .LP Die \ebranch\- und \emark\-Kommandos erlauben es, innerhalb eines \einclude File zu springen (analog zu "goto