557 lines
12 KiB
Plaintext
557 lines
12 KiB
Plaintext
.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
|
|
<backslash>
|
|
("\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.
|
|
<backslash> 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<ein_anderes_Zeichen>
|
|
.br
|
|
.IP
|
|
Das Zeichen <backslash> gelangt in den Monitor\-Puffer,
|
|
irgendeine spezielle Bedeutung des <backslash>
|
|
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 <backslash> wegblendet,
|
|
die zum Kaschieren von Begrenzern eingesetzt werden.
|
|
Im allgemeinen formuliert man also
|
|
zwei <backslash> hintereinander, wenn man eines
|
|
an den Parser senden will
|
|
(Das ist insgesamt aber so kompliziert,
|
|
dass man am besten die Verwendung von <backslash>
|
|
\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 <label>" und "<label>:"
|
|
in anderen Programmiersprachen).
|
|
Einem \emark\-Kommando muss eine Marke folgen.
|
|
Einem \ebranch\-Kommando folgt entweder eine Marke
|
|
\- was einen unbedingten Sprung \-
|
|
oder nach einem "?" ein Ausdruck, gefolgt von einer Marke
|
|
\- was einen bedingten Sprung bewirkt.
|
|
Der bedingte Sprung wird ausgef\o'u"'hrt,
|
|
wenn der Ausdruck gr\o'o"'sser als Null ist.
|
|
Zum Beispiel w\o'u"'rde
|
|
.br
|
|
\ebranch ?{readcount} noinput
|
|
.br
|
|
immer dann zur Marke noinput springen,
|
|
wenn der Makro\p
|
|
{readcount} anzeigt,
|
|
dass keine Zeichen eingegeben wurden.
|
|
Wenn bei Ausf\o'u"'hrung eines Sprungs die Zielmarke
|
|
nicht gefunden wird, versucht der
|
|
Monitor die Marke, die der Aufl\o'o"'sung
|
|
des Makros {default} entspricht, zu finden.
|
|
Wird keine Zielmarke gefunden, wird das
|
|
\einclude File verlassen.
|
|
.LP
|
|
Der Ausdruck, der im \ebranch\-Kommando angegeben
|
|
werden kann, muss folgender Syntax gen\o'u"'gen:
|
|
.IP
|
|
Die Operatoren +, -, *,
|
|
/,
|
|
\o'"', |,
|
|
<=, >=, <, >, =, und !=
|
|
sind in ihrer gew\o'o"'hnlichen Bedeutung definiert.
|
|
.LP
|
|
Der linke einstellige Operator "!" kann f\o'u"'r die
|
|
logische Negation benutzt werden.
|
|
Die Operationen werden nach den \o'u"'blichen
|
|
Vorrangregeln behandelt,
|
|
Abweichungen dazu k\o'o"'nnen durch
|
|
Klammerung mit () angewiesen werden.
|
|
Der Ausdruck darf keine Leerzeichen enthalten.
|
|
Ein Leerzeichen w\o'u"'rde den Ausdruck beenden.
|
|
.NH 4
|
|
.ft B
|
|
Initialisierung **
|
|
.ft R
|
|
.LP
|
|
W\o'a"'hrend des Startvorgangs (login)
|
|
werden eine Reihe von \%Initialisierungsaktionen ausgef\o'u"'hrt.
|
|
Zun\o'a"'chst (1) wird ein Makro "{pathname}"
|
|
definiert, der den ini\%tia\%li\%sie\%rungs\%ab\%h\o'a"'n\%gi\%gen
|
|
\*(yy\ Pfadnamen enth\o'a"'lt.
|
|
Weiter (2) wird das Ini\%tia\%li\%sie\%rungs\-File
|
|
"{pathname}/sys/etc/startup"
|
|
abgearbeitet.
|
|
Dieses File ist vorgesehen,
|
|
systemabh\o'a"'ngige Parameter,
|
|
wie den verwendeten Editor oder die verwendete Shell
|
|
zu definieren.
|
|
Drittens (3) wird ein nutzerabh\o'a"'ngiges
|
|
Initialisierungs\-File,
|
|
wie es in einem Feld des \*(yy\-Nutzerverzeichnis f\o'u"'r den
|
|
Nutzer spezifiziert ist,
|
|
gelesen und ausgef\o'u"'hrt.
|
|
Normalerweise dient dazu ein File namens ".quel"
|
|
im home_directory des Nutzers.
|
|
Dieses Initialisierungs\-File kann dazu dienen,
|
|
dem Nutzer gewisse Makros zu definieren
|
|
oder die gebr\o'a"'uchlichen range\-Statements
|
|
abzusenden.
|
|
Man kann in diesem File z.B. auch schon
|
|
das Start\-Menue eines voll eingerichteten
|
|
Anwendungsfalles unterbringen.
|
|
Letztlich (4) wird die Steuerung dem Nutzer\-Terminal
|
|
\o'u"'bergeben.
|
|
.NH 4
|
|
.ft B
|
|
Flags *
|
|
.ft R
|
|
.LP
|
|
Folgende Flags, wie sie bei Ruf von \*(yy\ (quel(unix))
|
|
gegeben werden k\o'o"'nnen, betreffen den Monitor:
|
|
.IP
|
|
Die \-\c
|
|
.ft B
|
|
a
|
|
.ft R
|
|
\-Option
|
|
unterdr\o'u"'ckt die autoclear\-Funktion.
|
|
Das bedeutet, dass der Monitor\-Puffer nicht
|
|
automatisch gel\o'o"'scht wird.
|
|
Die Wirkung ist so, als w\o'u"'rde
|
|
nach jedem \ego\-Kommando ein
|
|
\eappend\-Kommando eingef\o'u"'gt werden.
|
|
Unter dieser Option muss der Nutzer also selbst
|
|
jeweils durch ein explizites \ereset\-Kommando
|
|
den Monitor\-Puffer l\o'o"'schen.
|
|
.IP
|
|
Die \-\c
|
|
.ft B
|
|
d
|
|
.ft R
|
|
\-Option
|
|
unterdr\o'u"'ckt die Ausgabe des dayfile.
|
|
.IP
|
|
Die \-\c
|
|
.ft B
|
|
s
|
|
.ft R
|
|
\-Option
|
|
unterdr\o'u"'ckt mit Ausnahme der Fehlernachrichten
|
|
die Ausgabe aller Meldungen des Monitor,
|
|
also die login\- und logout\-Nachrichten,
|
|
die Ausgabe des dayfile und der Prompt\-Meldungen.
|
|
Diese Option kann f\o'u"'r "verdeckte Anfragen"
|
|
eingesetzt werden;
|
|
bei der Arbeit aus \einclude Files
|
|
wird diese Option tempor\o'a"'r automatisch gesetzt.
|
|
.LP
|
|
.ft B
|
|
SIEHE AUCH
|
|
.ft R
|
|
.IP
|
|
quel(unix),
|
|
makros
|
|
.RE
|
|
.sp 1
|
|
.ft B
|
|
NACHRICHTEN
|
|
.ft R
|
|
.IP
|
|
.RS
|
|
.IP ING_db>
|
|
Sie k\o'o"'nnen eine neue Query beginnen.
|
|
.IP ING_db:
|
|
Die vorangehende Query wurde bearbeitet.
|
|
Sie sind wieder im Monitor
|
|
.RE
|
|
.IP
|
|
I N G _ d b\ .\ .\ .
|
|
Die Query wird durch \*(yy\ bearbeitet.
|
|
.RS
|
|
.IP >>cmd [erg]
|
|
Sie arbeiten unter einem \*(xx\-Text\-Editor.
|
|
.IP >>sh
|
|
Sie arbeiten unter einer \*(xx\-shell.
|
|
.RE
|
|
.IP
|
|
Alle anderen Nachrichten sind selbsterkl\o'a"'rend.
|
|
.RE
|