EFEU is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
EFEU is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with EFEU; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
Dieses Handbuch beschreibt die einzelnen Kommandos von EFEU. Die aktuelle Version enthält alle Kommandos, aber die Beschreibungen sind zum Teil sehr kurz.
Die einzelnen Beschreibungstexte werden von den Kommandos selbst
mit der Option --help generiert. Die Syntax ist damit automatisch
mit dem Kommando abgestimmt und auf den neuesetem Stand.
Im folgenden sind die wichtigsten Werkzeuge von EFEU überblicksartig aufgelistet:
shmkmf
generiert ein Makefile aus einer Konfigurationsdatei
esh
ist ein Befehlsinterpreter mit einer Syntax ähnlich zu C/C++.
mksource
verwendet den esh Interprerter um C Sourcen zu generieren.
efeudoc
ist eine Dokumentgenerator mit verschiedenen Ausgabeformaten (LaTeX, HTML, roff, ...).
Erich Frühstück
Wördern, Dezember 2011
ÜBERSICHT
dircmp
[ --help[=type] ]
[ --version ]
[ -l ]
[ -b ]
[ -d ]
[ -c ]
[ -v ]
dir1
dir2
BESCHREIBUNG
Das Kommando dircmp vergleicht Dateien in dir1 mit Dateien in dir2.
Die Verarbeitung erfolgt rekursiv. Der Vergleich ist nicht symetrisch:
Es ist in Ordnung, wenn dir1 weniger Dateien als dir2 enthält.
Die folgenden Optionen und Argumente werden vom Kommando dircmp akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
-l
Ausgabe aller abweichenden Bytes (cmp -l)
-b
Weissen Zeichen beim Vergleich ignorieren.
-d
Vergleich mit diff anstelle von cmp
-c
Kontextvergleich mit diff anstelle von cmp
-v
Protokoll der durchgeführten Vergleiche
1. Verzeichnis
2. Verzeichnis
BEISPIELE
Die folgenden Befehlszeilen zeigen die Verwendung von dircmp:
mkdir save
cpfilessave
...
dircmp save .
SIEHE AUCH
cmp(1), diff(1), dircpy(1).
COPYRIGHT
Copyright (C) 2001 Erich Frühstück
ÜBERSICHT
dircpy
[ --help[=type] ]
[ --version ]
src
tg
[ find-options ]
BESCHREIBUNG
Das Kommando dircpy verwendet find und cpio zum Kopieren des
Verzeichnisbaumes src nach tg/src.
Attribute und Zugriffszeiten werden mitkopiert. Die Zugriffszeiten
der Ausgangsdateien bleiben unverändert. Dateien werden nur überschrieben,
wenn die zugehörige Ausgangsdatei eine neuere Modifikationszeit aufweist.
SIEHE AUCH
find(1), cpio(1), dircmp(1).
COPYRIGHT
Copyright (C) 2001 Erich Frühstück
ÜBERSICHT
efeu-magic
[ --help[=type] ]
[ --version ]
dir
BESCHREIBUNG
Folgende Optionen und Argumente werden vom Kommando efeu-magic akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
Verzeichnis mit Magic-File
SIEHE AUCH
efile(1), file(1), magic(5).
COPYRIGHT
Copyright (C) 2000 Erich Frühstück
ÜBERSICHT
efeucc
[ --help[=type] ]
[ --version ]
[ arg(s) ]
BESCHREIBUNG
Das Kommando efeucc setzt einige default Optionen für
def C-Kompiler und erweitert die Suchpfade für Einbindedateien
und Bibliotheken entsprechend dem Hauptverzeichnis von EFEU.
Die aktuelle Setzung kann direkt dem Kommando /efeucc
entnommen werden.
SIEHE AUCH
cc(1).
BEMERKUNGEN
Dieses Kommando wurde mit /home/efeu/www/efeu-3.3-1/src/config/efeu/efeucc.gencmd
bei der Installation von EFEU generiert.
ÜBERSICHT
efeudoc
[ --help[=type] ]
[ --version ]
[ --info[=entry] ]
[ --debug[=mode] ]
[ --verbose ]
[ -I dir ]
[ -T type ]
[ -C cfg ]
[ -H hdr ]
[ -0 ]
[ -u ]
[ -r name ]
[ -d ]
[ -t ]
[ -l ]
[ -p ]
[ --pdf ]
[ -h ]
[ -o aus ]
file(s)
BESCHREIBUNG
Das Kommando efeudoc ist ein Dokumentgenerator, der verschiedene
Ausgabeformate (LaTeX, HTML, nroff/troff, ...) kennt. Der
EFEU-Interpreter (Vergleiche dazu esh(1)) wird in Anweisungen
verwendet und erlaubt Datenauswertungen direkt im Dokument.
BESCHREIBUNG
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
--info[=entry]
listet verfügbare Informationseinträge des Kommandos auf.
--debug[=mode]
setzt den Protokollmodus für das Kommando. Vergleiche dazu .
--verbose
setzt den Debug-Level auf .info.
-I dir
erweitert den Suchpfad für Konfigurationsdateien um dir.
Die Vorgabe für den Suchpfad ist:
.
-T type
Ausgabetype, ? liefert eine Auflistung.
-C cfg
Konfigurationsfile
-H hdr
Wertet den String hdr vor den Eingabedateien aus. Damit können Dokumentmakros definiert werden.
-0
Dokumentkopf unterdrücken
-u
UTF8 Kodierung verwenden.
-r name
Generierungsregeln mit Pseudoziel
-d
Abhängigkeitsregeln generieren
-t
Terminalausgabe
-l
LaTeX-Dokument
-p
PostScript-Dokument über LaTeX
--pdf
PDF-Dokument über LaTeX
-h
HTML-Dokument
-o aus
Ausgabefile
Eingabedatei(en)
Der Code
Beispiel für eine Aufzählungsliste:
* Listeneintrag mit einem längeren Absatz zur
Demonstration der Funktionsweise von
Einrückungen.
Ein neuer Absatz mit einer Aufzählung:
# Eintrag 1
# Eintrag 2
* Ein weiterer Listeneintrag
Text nach der Aufzählung.
erzeugt die Ausgabe:
Beispiel für eine Aufzählungsliste:
Ein neuer Absatz mit einer Aufzählung:
Zeichensatz
Ein Dokument kann gemischt Zeichen in UTF8 oder ISO 8859-15 enthalten. Die Interpretation von UTF8-Sequenzen ist vorrangig. Gehört ein Byte nicht zu einer UTF8-Sequenz, wird es als Zeichen im Zeichensatz ISO 8859-15 interpretiert.
Intern werden die Zeichen im Unicode gespeichert.
Von den weißen Zeichen wird nur das Leerzeichen, der Tabulator und der Zeilenvorschub interpretiert. Tabulatoren werden automatisch in Leerzeichen expandiert. Tabulatorbreite ist dabei 8 Zeichen. Mehrere aufeinanderfolgende Leerzeichen gelten im Regelfall wie ein einzelnes Leerzeichen. Eine Leerzeile trennt einzelne Absätze.
Einrücktiefe
Leerzeichen und Tabulatoren am Anfang einer Zeile werden nicht ausgegeben, sondern bestimmen die aktuelle Einrücktiefe. Diese dient zur automatischen Verwaltung von listenähnlichen Strukturen. Bei Tabellenzeilen und bei Befehlen mit langen Argumenten dient die Einrückung zur Kennzeichnung von Fortsetzungszeilen.
Kommentare
Eine Beschreibungsdatei kann Kommentare im C++-Stil enthalten.
Diese sind etweder durch /* ... */ oder durch // ... Zeilenvorschub
begrenzt, wobei der Zeilenvorschub selbst nicht zum Kommentar
gerechnet wird.
Beginnt ein Kommentar unmittelbar am Zeilenanfang, wird ein dem Kommentar folgender Zeilenvorschub unterdrückt. Bei der Entfernung eines Kommentars aus dem Eingabestrom kann damit nie eine Leerzeile (Absatztrennung!) entstehen.
Namen
Befehle, Makros und Sonderzeichen werden durch einen Namen gekennzeichnet. Dieser muß mit einem Buchstaben beginnen und darf nur aus Buchstaben und Ziffern bestehen. Ein Unterstreichungssymbol gilt als Buchstabe.
Folgt auf einem Namen ein Leerzeichen oder ein Tabulator, werden alle folgenden Leerzeichen und Tabulatoren entfernt. Folgt auf einen Namen ein Strichpunkt, wird dieser entfernt. Jedes andere Zeichen nach einem Namen bleibt erhalten.
Dabei handelt es sich um gewisse Buchstabenkombinationen, bei deren Zusammentreffen ein neues Zeichen gebildet, oder einzelne Zeichen anders gesetzt werden. Folgende Ligaturen sind definiert:
- wird als kurzer Strich -, zwei
aufeinanderfolgende Minuszeichen -- werden als mittellanger
Strich -- und drei aufeinanderfolgende Minuszeichen ---
werden als langer Strich --- gesetzt.
&ldots; eingesetzt werden.
- oder ein Minus + vor einer Ziffer wird im
mathematischen Modus gesetzt.
Fluchtsymbol
Der Dokumentgenerator kennt eine Reihe von Steuerzeichen.
Zu ihrer Ausgabe wird als Fluchtsymbol der
Gegenschrägstrich \
verwendet. Dieser dient auch zur Kennung eines Dokumentbefehls.
Grundsätzlich gilt: folgt einem Gegenschrägstrich ein
alphanumerisches Zeichen oder ein Unterstreichungssymbol, handelt es
sich um einen Dokumentbefehl, ansonsten wird das nachfolgende Zeichen
wie ein gewöhnliches Zeichen behandelt, unabhängig davon ob es sich
um ein Sonderzeichen handelt oder nicht.
Für die Maskierung mit dem Fluchtsymbol gelten folgende Regeln:
\, @, &, <, >, | und ~
benötigen immer das Fluchtsymbol.
= nach einem Befehl- oder Makronamen
benötigt das Fluchtsymbol.
*, # und [ benötigen am Anfang einer Zeile
oder im Tabellensatz das Fluchtsymbol.
/* und // nicht interpretiert wird,
ist eines der Zeichen zu maskieren.
/**/ aufgehoben werden.
Sonderzeichen
Satztechnische Zeichen (z.B: Umbruchstellen)
und schwer über die Standardtastatur
eingebbare Zeichen werden als Sonderzeichen bezeichnet.
Ein Sonderzeichen wird mit dem Steuerzeichen & eingeleitet,
danach folgt der Name des Sonderzeichens oder ein einzelnes,
nichtnumerisches Zeichen. Als Namenskonvention werden die in HTML
üblichen Namen für Character Entitäten verwendet.
Die nichtnumerischen Zeichen werden für
häufig verwendete Sonderzeichen eingesetzt. Ist die entsprechende
Zeichenkombination nicht definiert, wirkt & wie ein Fluchtsymbol.
Derzeit wird nur &- für das Sonderzeichen ­, das eine
Umbruchstelle markiert, verwendet. Die Kombination &; gilt als
Leerzeichein und kann z.B. zum Aufbrechen einer Ligatur verwendet
werden.
Für das häufig benötigte Leerzeichen ohne Umbrucherlaubnis wird
das Steuerzeichen ~ (entspricht ) verwendet.
Absätze
Die Grundelemente eines Dokumentes sind Absätze. Diese werden voneinander durch Leerzeilen getrennt. Bei Befehlen, die einen neuen Absatz erzwingen, kann die Leerzeile entfallen. Die Zahl der Leerzeilen zwischen einem Absatz ist beliebig.
ANWEISUNGEN
Dieser Abschnitt listet alle vordefinierten Anweisungen
von efeudoc auf.
Bezüglich der Argumentdarstellung von Befehlen gilt folgende Konvention:
\addflag
\addflag flags
Der Befehl \addflag erweitert die Flags zur Dokumentverarbeitung.
Inwieweit einzelne Flags bei der Formatierung berücksichtigt werden,
hängt vom jeweiligem Ausgabetreiber ab.
\addsrc
Liste der Programmsourcen um Einzeldatei erweitern
\addsrc name
Der Befehl \addsrc erweitert die Liste der Programmsourcen mit der
Datei name.
\addsrclist
Liste der Programmsourcen um Dateien in Bibliothek erweitern
\addsrclist dir
Der Befehl \addsrclist erweitert die Liste der Programmsourcen zur Konstruktion von
Handbucheinträgen mit allen Dateien aus der Bibliothek dir.
Fehlt die Angabe von dir, wird der Bibliotheksname der aktuellen
Eingabedatei genommen.
\appendix
Anhang
Der Befehl\appendix[Kurzform]Bezeichnung
\appendix beginnt einen neuen Anhangteil.
\author
Autorenliste
Der Befehl\authorAutorenliste
...
\author definiert die Autorenliste für die Titelseite.
\bfitem
Beschreibungsmarke in Fettschrift
\bfitem Marke
Der Befehl \bfitem setzt eine Beschreibungsmarke in Fettschrift.
\bibitem
Eintrag ins Literaturverzeichnis
Der Befehl \bibitem beginnt einen Eintrag ins Literaturverzeichnis
\bibliography
Literaturverzeichnis
Der Befehl \bibliography beginnt das Literaturverzeichnis
\br
Zeilenumbruch
Der Befehl \br bewirkt einen Zeilenumbruch.
\caption
Über- und Unterschriften für Übersichten
Der Befehl\caption[Kurzform]Überschrift
\caption setzt eine Über- bzw. Unterschrift in einer gleitenden
Übersicht.
\chap
Kapitel
Der Befehl\chap[Kurzform]Kapiteltitel
...
\chap beginnt ein neues Kapitel.
\cite
Abruf eines Literatureintrages
Der Befehl \cite ruft einen Literatureintrag ab.
\cmdinclude
Befehlsscript einbinden
\cmdinclude"name"\cmdinclude<name>
\code
Kodeumgebung
Der Befehl \code wechselt in die Code-Umgebung. Innerhalb dieser
Umgebung wird der Text in Schreibmaschine gesetzt.
\config
Konfigurationsfile laden
\config name
Der Befehl \config ladet die Befehle in der Konfigurationsdatei name.
\Copyright
Hauptüberschrift COPYRIGHT
\date
Datum setzen
\date Datum
Der Befehl \date setzt das Datum des Dokuments.
\delsrc
Dateien aus der Liste der Programmsourcen löschen
\delsrc list
Der Befehl \delsrc löscht alle Dateien aus der Liste der Programmsourcen,
die der Musterliste list entsprechen. Eine leere Liste löcht alle
Einträge.
\Description
Hauptüberschrift BESCHREIBUNG
\Diagnostics
Hauptüberschrift DIAGNOSE
\docfile
Pfadname einer Dokumentdatei suchen
Der Befehl\docfileName
\docfile{Name}
\docfile sucht nach der Datei name in Bezug auf den
aktuellen Dokumentpfad und liefert bei Erfolg den Pfadnamen.
\end
Aktuelle Umgebung beenden
Der Befehl \end schließt die aktuelle Umgebung ab.
\endall
Alle Umgebungen beenden
Der Befehl \endall schließt alle Umgebungen ab.
\endlist
Liste beenden
Der Befehl \endlist schließt die aktuelle Liste ab.
\Environment
Hauptüberschrift UMGEBUNGSVARIABLEN
\Errors
Hauptüberschrift FEHLER
\eval
Ausdruck auswerten
Der Befehl\evalAusdruck
\eval{Ausdruck}
\eval wertet den nachfolgenden Ausdruck Ausdruck aus und
stellt das Ergebnis in die Standardeingabe. Der Ausdruck kann
wahlweise als Befehlszeile oder als Block mit geschwungenen
Klammern angegeben werden.
Beispiel: \eval{3*5} liefert 15.
\Example
Hauptüberschrift BEISPIEL
\Examples
Hauptüberschrift BEISPIELE
\exercise
Aufgabe
\exercise
Der Makro beginnt eine neue Übungsaufgabe.
\fig
Abbildung
Der Befehl\fig[pos]
\fig beginnt eine gleitende Abbildung.
\Files
Hauptüberschrift DATEIEN
\getsrc
Dateien der Sourceliste einbinden
Das Argument list gibt eine Liste von Selektionsmustern zur Auswahl der Dateien an. Der optionale Parameter cmd bestimmt das Filterprogramm zur Aufbereitung des Datenfiles.\getsrc[cmd]list
\geval
Ausdruck global auswerten
Der Befehl\gevalAusdruck
\geval{Ausdruck}
\geval arbeitet wie \eval, jedoch werden neue Variablen
global angelegt.
\hang
Hängende Absätze
Der Befehl \hang beginnt eine Umgebung mit hängenden Absätzen.
\head
Hauptüberschrift in Handbucheinträgen
Der Befehl\head[Kurzform]Hauptüberschrift
...
\head setzt eine Hauptüberschift.
\hmode
Absatz beginnen, Horizontaler Modus
\hmode
Der Befehl \hmode beginnt einen Absatz, falls noch keiner angefangen wurde.
\if
Testblock
Falls expr wahr ist, wird ifpart ausgegeben, ansonsten elsepart. Das Schlüsselwort\if{expr}ifpart ;[\elseelsepart;]\endif
\else kann zusammen mit elsepart entfallen.
Testblöcke können verschachtelt werden. Kommentare und mit | ... |
oder ---- ... ---- geklammerte Textteile werden nicht nach
Schlüsselwörtern untersucht.
\include
Datei einbinden
Der Befehl\include[flags]name
\include bindet die Datei file an der aktuellen Position ein.
Folgende Steuerflags können angegeben werden:
verbatim
Wortwörtlicher Text ohne Interpretation von Sonderzeichen. Tabulatoren werden durch Leerzeichen ersetzt.
latex
Datei enthält LaTeX-Steuersequenzen
html
Datei enthält HTML-Steuersequenzen
man
Datei enthält nroff-Steuersequnenzen im Handbuchstandard
ignore
Datei wird verarbeitet, aber es erfolgt keine Ausgabe.
eval
Die Datei wird als Befehlsskript ausgewertet.
geval
Die Datei wird als Befehlsskript ausgewertet, wobei neue Variablen global angelegt werden.
\index
Der Befehl\index[Eintrag]{Bereich}
\index generiert einen Indexeintrag Eintrag zu einem
Textbereich Bereich.
Fehlt Eintrag wird Bereich als Indexeintrag verwendet.
\intro
Einführung
Der Befehl \intro beginnt die Einführung
\item
Beschreibungsmarke in Standardschrift
\item Marke
Der Befehl \item setzt eine Beschreibungsmarke in Standardschrift.
\ititem
Beschreibungsmarke in Kursivschrift
\ititem Marke
Der Befehl \ititem setzt eine Beschreibungsmarke in Kursivschrift.
\label
Label
Der Befehl\label{Name}
\label setzt einen Label an der aktuellen Position.
\langpar
Sprachabhängiger Absatz
Experimentell, könnte geändert werden.\langpar
par
\latex
LaTeX-Befehl
Der Befehl\latex[Alternative] {LaTeX-Code}
\latex[Alternative]LaTeX-Code
\latex erlaubt die direkte Ausgabe von LaTeX-Code an den
LaTeX-Treiber. Bei allen anderen Ausgabetreibern wird die Alternative
ausgegeben.
\lmark
Literaturmarke
Der Befehl\lmark{name}
\lmark generiert eine Literaturmarke.
\lof
Verzeichnis der Abbildungen
Der Befehl \lof generiert ein Tabellenverzeichnis.
\lot
Verzeichnis der Tabellen
Der Befehl \lot generiert ein Tabellenverzeichnis.
\margin
Randnotiz
Der Befehl\margin[Links] {Randnotiz}
\margin setzt eine Randnotiz. Der optionale Text Links
für linke Seiten wird nur bei doppelseitigem Druck verwendet.
\mark
Fußnotenmarke
Der Befehl\mark{num}
\mark generiert eine Fußnotenmarke.
\math
Mathematischer Formelsatz
\math{Formel}
\mchap
Handbuchkapitel
Der Befehl\mchap[Nummer]Kapiteltitel
...
\mchap beginnt ein neues Handbuchkapitel.
\mkmf
Makefile generieren und einbinden
\mkmf Imakefile
Der Befehl \mkmf wendet mkmf auf das angegebene Imakefile
an und bindet das Makefile wortwörtlich ein.
\mksource
Sourcefile generieren
\mksource Datei
Der Befehl \mksource wendet mksource auf die angegebene Skriptdatei
an und bindet die Ergebnisdateien wortwörtlich ein.
\mpage
Handbucheintrag
Der Befehl\mpage[num]name
\mpage beginnt einen neuen Handbucheintrag mit Namen name zum
Handbuchkapitel num. Dieser Befehl wird automatisch zu Beginn einer
Datei eingefügt, dessen Filezusatz mit einer Ziffer beginnt.
\mref
Referenz auf einen Handbucheintrag.
Der Befehl\mref{arg}
\mref generiert eine Referenz auf einen Handbucheintrag.
\ms_example
Beispiel für mksource ausführen
Der Befehl\ms_examplename Beispielskript\\end
\ms_example wendet mksource auf das Beispielskript
an und bindet dieses mit allen Ergebnisdateien wortwörtlich ein.
\n
Zeilenvorschub
\n
Der Befehl \n schreibt einen Zeilenvorschub zurück.
\Name
Namensabschnitt einer Handbuchseite mit Hauptüberschrift BEZEICHNUNG
\Name[Kurzform]Titel
...
\Name[Kurzform]
Einzeiliger Titel
\newpage
Seitenumbruch
Der Befehl \newpage bewirkt einen Seitenumbruch.
\note
Fußnote
Der Befehl\note[Marke] {Anmerkung}
\note setzt eine Fußnote.
\Notes
Hauptüberschrift BEMERKUNGEN
\package
LaTeX-Pakete
\package[opt] name
Der Befehl \package generiert für LaTeX die Definitionszeile
\usepackage[opt]{name}. Damit werden Zusatzpakete geladen.
\par
Absatz beenden, vertikaler Modus
\par
Der Befehl \par beendet einen Absatz.
\para
Paragraph
Der Befehl\para[Kurzform]Paragraph
...
\para setzt einen Pargraphen.
\part
Teilabschnitt
Der Befehl\part[Kurzform]Abschnittstitel
...
\part beginnt einen neuen Teilabschnitt.
\pipe
Prozesseingabe
Der Befehl\pipe[flags]cmd ...
\pipe bindet die Ausgabe des Kommandos cmd ein.
Die Flags flags sind äquivalent zu \include.
\pop
Befehlstabelle entfernen
Der Befehl \pop entfernt die unterste Tabelle vom Tabellenstack.
\pref
Seitenreferenz
Der Befehl\pref{Name}
\pref referenziert die Seite eines Labels.
\preface
Vorwort
Der Befehl \preface beginnt das Vorwort
\printindex
Stichwortverzeichnis
Der Befehl \printindex generiert das Stichwortverzeichnis.
\printsrclist
Aktuelle Liste der Programmsourcen ausgeben
\printsrclist fmt
Der Befehl \printsrclist gibt die aktuelle Liste der Programmsourcen aus.
\proto
Funktionsprototype
\proto Prototype
Die Funktion \proto dient zur Ausgabe eines Funktionsprototypes
der EFEU INterpretersprache
\push
Neue Befehlstabelle
Der Befehl \push generiert eine neue Tabelle für Befehle, Makros und
Variablen und legt sie am Tabellenstack ab.
\quote
Einrückung
Der Befehl \quote wechselt in die quote-Umgebung.
Innerhalb dieser Umgebung wird der Text eingerückt.
\ref
Referenz
Der Befehl\ref{Name}
\ref referenziert den Wert eines Labels.
\relax
Leerbefehl
Der Befehl \relax bewirkt nichts.
\rem
Kommentar
\rem Kommentar
Der Befehl \rem schreibt einen Kommentar in das Ausgabefile.
\sec
Bereich
Der Befehl\sec[Kurzform]Bereichstitel
...
\sec beginnt einen neuen Bereich.
\SeeAlso
Hauptüberschrift SIEHE AUCH
\shead
Nebenüberschrift in Handbucheinträgen
Der Befehl\shead[Kurzform]Nebenüberschrift
...
\shead setzt eine Nebenüberschrift.
\spage
Teilseite
Der Befehl\spage[margin]flags
\spage beginnt eine neue Teilseite, veraltet.
\src2doc
Handbucheinträge aus Programmsourcen generieren
Das Argument Musterliste gibt eine Liste von Selektionsmustern an. Der Optionale Parameter flags erlaubt die Übergabe von Optionen an das Kommando\src2doc[flags]Musterliste
src2doc.
\srcinclude
Dateien der Sourceliste einbinden
\srcinclude Musterliste
Das Argument list gibt eine Liste von Selektionsmustern zur
Auswahl der Dateien an.
\ssec
Zwischentitel
Der Befehl\ssec[Kurzform]Zwischentitel
...
\ssec setzt einen Zwischentitel und beginnt einen neuen Teilbereich.
\style
Dokumentart
\style Stil
Der Befehl \style setzt die Dokumentart.
\Synopsis
Hauptüberschrift ÜBERSICHT
\t
Tabulator
\t
Der Befehl \t schreibt einen Tabulator zurück.
\tab
Tabellensatz
Der Befehl\tab[pos]fmt
Tabellenzeilen
\tab beginnt eine Tabelle mit vertiklarer Ausrichtung pos
und Spaltenformartierung fmt. Die Tabellendefinition endet
bei der ersten Leerzeile.
\table
Tabelle
Der Befehl\table[pos]
\table beginnt eine gleitende Tabelle.
\thedate
Datum abfragen
\thedate
Der Befehl \thedate ruft das Dokumentdatum ab.
\title
Titel und Untertitel
Falls das Dokument noch nicht begonnen wurde, setzt der Befehl\title[Kurzform]Titel
Untertitel
\title
Titel und Untertitel des Dokuments. Ansonsten wird ein neues Kapitel
begonnen, wobei die Kurzform für den Eintrag ins Inhaltsverzeichnis
verwendet wird.
\toc
Inhaltsverzeichnis
Der Befehl \toc generiert ein Inhaltsverzeichnis.
\ttitem
Listeneintrag in Schreibmaschinenschrift
\ttitem Marke
Der Befehl \ttitem setzt eine Beschreibungsmarke in
Schreibmaschinenschrift.
\url
Referenz auf einen Hyperlink.
Der Befehl\url|url| {Bezeichnung}
\url generiert einen Hyperlink.
\vref
Kombinierte Referenz
Der Befehl\vref{Name}
\vref referenziert Wert und Seite eines Labels.
\vspace
Vertikale Verschiebung
\vspace offset
Der Befehl \vspace beendet den laufenden Absatz und generiert eine
vertikale Verschiebung um offset Zeilen.
\Warnings
Hauptüberschrift WARNUNGEN
MAKROS
Dieser Abschnitt enthält eine Auflistung aller vordefinierten
Makros von efeudoc.
@Copyright
Impressum
Der Makro@Copyright(Ersheinungsjahr)
@Copyright setzt das Impressum für ein EFEU-Handbuch.
@if
Bedingter Ausdruck
Falls expr wahr ist, wird ifpart ausgegeben, ansonsten elsepart.@if(expr,ifpart,elsepart)
@MSExample
mksource Beispiel einbinden
Der Makro bindet ein Beispielskript und sein Ergebnis ein. Dabei ist name der Name des Skripts und text der Trenntext zwischen Skriptfile und den Ergebnisdateien.@MSExample(name,text)
@PRM
reference to the Programmer''s Reference Manual
@TODO
Anmerkung für unvollständigen Abschnitt
UMGEBUNGSVARIABLEN
APPLPATH
LANG
bestimmt die Sprache für Meldungen und Hilfetexte.
SIEHE AUCH
esh(1).
COPYRIGHT
Copyright (C) 1999 Erich Frühstück
ÜBERSICHT
efeuscript
[ --help[=type] ]
[ --version ]
[ -u ]
[ -g ]
[ -e ]
[ -r ]
[ -s /expr/repl/ ]
[ -c name ]
src
tg
BESCHREIBUNG
Das Kommando ergänzt das Skript src mit einer Interpreterkennung. Dabei wird der vollständige Pfad des Interpreters automatisch ermittelt.
Falls bereits eine Interpreterkennung vorhanden ist, wird diese nur geprüft und nicht verändert.
Die folgenden Optionen und Argumente werden vom Kommando efeuscript akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
-u
Nur Eigentümer erhält Ausführungsrechte
-g
Nur Eigentümer und Gruppe erhalten Ausführungsrechte
-e
/usr/bin/env zum Start des Interpreters verwenden
-r
exec zum Start des Interpreters verwenden
-s /expr/repl/
Verwende sed zum Ersetzen von expr durch repl. Mehrfachangaben
sind möglich. Anstelle von / kann auch ein anderes Trennzeichen
verwendet werden.
-c name
Name des Befehlsinterpreters, Vorgabe cmd
Pfadname des Quellskripts
Pfadname des Zielskripts
COPYRIGHT
Copyright (C) 2001 Erich Frühstück
ÜBERSICHT
efile
[ --help[=type] ]
[ --version ]
file(s)
BESCHREIBUNG
efile implementiert das Kommando file mit efeu-spezifischen
Erweiterungen. Bei Dateien mit Filezusatz .gz wird der erste Block
der Datei entpackt und von file ausgewertet.
Die folgenden Optionen und Argumente werden vom Kommando efile akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
Liste der Dateien zur Bestimmung des Dateitypes
SIEHE AUCH
efeu-magic(1), file(1), magic(5).
COPYRIGHT
Copyright (C) 2001, 2008 Erich Frühstück
ÜBERSICHT
esh
[ --help[=type] ]
[ --version ]
[ --info[=entry] ]
[ --debug[=mode] ]
[ --verbose ]
[ -I dir ]
[ -D name=val ]
[ -c string ]
[ -E ]
[ file ]
[ arg(s) ]
BESCHREIBUNG
Das Programm esh
interpretiert Skriptfiles in der Syntax des EFEU-Befehlsinterpreters.
Die Syntax der Sprache ist ähnlich zu C/C++. Wer damit vertraut ist,
sollte keine Schwierigkeiten haben, diese Sprache zu lernen.
Das Kommando esh akzepiert Kommentare im Stil von C/C++ und verwendet
einen Präprozessor ähnlich zu C/C++. Dieser wird weiter unten
beschrieben. Eine Zeile, die mit #! startet, wird nicht von esh
interpretiert. Sie dient primär dazu, den Interpreter für die
Ausführung des Skripts zu definieren. Die Interpreterkennung
hat die Form
#!vollständiger Pfadname von esh
Damit ein Skript unabhängig vom
Installationsort von esh ist, kann auch folgende Interpreterdefinition
verwendet werden:
#!/usr/bin/env esh
Ausdrücke im EFEU-Befehlsinterpreter werden entweder durch einen
Strichpunkt oder einen Zeilenvorschub beendet. Tabulatoren und
Leerzeichen werden überlesen. Ein Ausdruck wird ebenfalls beendet,
wenn einem Term kein rechter Operator mehr nachfolgt. Falls in
diesem Fall ein Punktierungszeichen dem Term folgt, wird dieses als
Abschlußzeichen genommen, ansonsten ein Leerzeichen.
An manchen Stellen, z.B. innerhalb einer Argumentliste einer Funktion,
wird ein Zeilenvorschub nicht als Abschlußzeichen, sondern nur wie
ein gewöhnliches Leerzeichen behandelt.
Im äußersten Modus (außerhalb eines Blocks oder eines Funktionsrumpfes) wird jeder Ausdruck sofort nach dem Lesen ausgewertet. Falls der Ausdruck nicht durch einen Strichpunkt abgeschlossen wurde und ein Ergebnis liefert, wird dieses, gefolgt vom Abschlußzeichen, ausgegeben.
Zum Beispiel wird die Zeile
3 * 5 4 + 7 $ 2 - 1; 4 + 1
in die 4 Ausdrücke
aufgespalten und die Ausgabe ist3 * 5mit einem Leerzeichen als Abschluß,
4 + 7mit einem$als Abschlußzeichen,
2 - 1mit einem;als Abschlußzeichen und
4 + 1mit einem Zeilenvorschub als Abschluß
15 11$5
im äußersten Modus.
Falls esh ohne Skriptnamen aufgerufen wird, oder falls anstelle
des Skriptnamens ein einzelnes Minus steht, werden die Befehlszeilen
von der Standardeingabe gelesen. Falls die Standardeingabe und die
Standardausgabe mit einem Terminal verbunden sind, läuft esh
interaktiv und readline wird für die Eingabe vom Terminal verwendet.
Die Steuerzeichen von readline sind aktiv und ein Rufzeichen !
zu Beginn einer Zeile erlaubt die Eingabe von History-Befehlen und
Systemaufrufen.
Die Verwendung von readline im interaktiven Modus und die
automatische Ausgabe von Resultaten machen esh zu einem komfortablen
Tischrechner.
Der EFEU-Befehlsinterpreter ist mit C-Bibliotheksfunktionen implementiert,
esh ist ein einfaches Programm, das diese Funktionen nutzt. Der
Interpreter kann Datenpointer gemeinsam mit C-Funktionen nutzen
und mit eigenen Funktionen und Datentypen erweitert werden.
Er eignet sich zur Verarbeitung von
Konfigurationsdateien und zum Testen von Funktionen.
Falls EFEU für gemeinsam genutzte Bibliotheken kompiliert wurde,
kann esh zur Laufzeit erweitert werden. Falls ein dynamisches Linken
von Funktionen nicht möglich ist, können die Erweiterungen in einer
Kopie von esh.c eingebaut werden.
Optionen
Optionen und Argumente nach dem Skriptnamen werden vom Skript selbst
interpretiert. Der Interpreter esh selbst akzeptiert die folgenden
Optionen und Argumente:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
--info[=entry]
listet verfügbare Informationseinträge des Kommandos auf.
--debug[=mode]
setzt den Protokollmodus für das Kommando. Vergleiche dazu .
--verbose
setzt den Debug-Level auf .info.
-I dir
erweitert den Suchpfad für Skriptfiles um dir.
Die Vorgabe für den Suchpfad ist:
"/home/efeu/www/efeu-3.3-1/lib/esh/%S:/home/efeu/www/efeu-3.3-1/lib/esh:/usr/local/lib/esh/%S:/usr/local/lib/esh:/usr/lib/esh/%S:/usr/lib/esh:/lib/esh/%S:/lib/esh".
-D name=val
definiert den Makro name mit Wert value
-c string
liest Befehle vom String string.
ist der Name des Skriptfiles.
sind die Skriptparameter.
-E
es wird nur der Präprozessor verwendet, das Skriptfile wird nicht verarbeitet.
PRÄPROZESSOR
Der verwendete Präprozessor hat eine ähnliche Syntax wie der C-Präprozessor.
Es gibt jedoch einen wesentlichen Unterschied:
Der Präprozessor wird nicht zur Vorverarbeitung der gesamten Datei
verwendet, sondern ist zeilenweise implementiert und arbeitet direkt
mit dem Befehlsinterpreter zusammen. Insbesonders kann durch Verändern
von Variablen im äußeren Modus auch die Verarbeitung nachfolgender
Präprozessorzeilen beeinflußt werden.
Eine Direktive (Präprozessoranweisung) wird mit einem Gittersymbol
# eingeleitet. Danach folgt der Name der Direktive und die zugehörigen
Argumente.
Eine Präprozessorzeile, bei der nach dem
Startzeichen (#) ein Sonderzeichen folgt, wird ignoriert.
Insbesonders gilt das für die Interpreterkennung #!.
Einbinden von Dateien
Dateien werden mit der #include Direktive eingebunden.
Zunächst werden im Argument der Direktive alle Makros expandiert.
Anschließend bleiben drei mögliche Fälle:
#include <file>
Die Suche nach der Datei file erfolgt in den durch die
Variable IncPath (Kann mit der Umgebungsvariablen ESHPATH
und der Option -I erweitert werden) definierten Verzeichnissen.
#include expr
<
beginnt, wird die Datei zunächst im aktuellen Verzeichnis
gesucht und erst anschließend in den durch IncPath
definierten Verzeichnis.
#include "file"
esh ist die folgende Konstruktion erlaubt:
str header = paste("/", "SubDir", "MyHeader");
#include "<" + header + ">"
Bedingte Verarbeitung
Eine bedingte Verarbeitung beginnt mit einer der Direktiven #if,
#ifdef oder #ifndef und endet mit #endif. Innerhalb der
bedingten Verarbeitung können beliebig viele #elif Anweisungen
und eine #else Anweisung enthalten sein.
Bereiche mit bedingter Verarbeitung können beliebig geschachtelt werden.
Die Direktiven
dienen zum Testen, ob der Makro mit Namen name definiert (bzw. nicht definiert) ist. Auf diese Direktiven wird keine Makrosubstitution angewendet.#ifdefname
#ifndefname
Die einfachste Form eines bedingten Ausdrucks hat die Form:
#ifexpr
Zeilen werden verarbeitet, falls expr wahr ist.
#endif
Ein etwas komplexerer Ausdruck könnte etwa so aussehen:
#ifexpr1
Zeilen werden verarbeitet, falls expr1 wahr ist.
#elifexpr2
Zeilen werden verarbeitet, falls expr2 wahr und expr1 falsch ist.
#else
Zeilen werden verarbeitet, falls weder expr1 noch expr2 wahr ist.
#endif
Wie bereits im Abschnitt »Einbinden von Dateien« erwähnt, können in expr beliebige Variablen oder Funktionen, die vor der bedingten Verarbeitung erklärt wurden, verwendet werden.
Makros
Makros werden mit der #define Direktive definiert. Es gibt zwei
Formen:
#define name repl
definiert einen Makro name der durch repl ersetzt wird.
#define name(arglist) repl
In esh werden Makros nur selten verwendet. In fast allen Fällen sind
Variablen und Funktionen die bessere Lösung. Normalerweise werden
Makros nur zum Absichern von Headerdateien gegen mehrfache Einbindung
verwendet.
Ein Makrodefinition kann mit der #undef Direktive gelöscht werden.
VARIABLEN UND KONSTANTEN
Im Gegensatz zu anderen Interpretersprachen müssen in esh Variablen
wie in C/C++ vor ihrer Verwendung deklariert werden. Die Deklaration
kann an beliebiger Stelle (mit Berücksichtigung der aktuellen Hierarchie
der Variablentabellen) im Skript erfolgen. Eine Deklaration liefert
als Rückgabewert den Initialisierungswert der deklarierten Variablen.
Zum Beispiel deklariert
int x; double a, b; x = (int y = 5);zunächst die Ganzzahlvariable x und die Gleitkommavariablen a und b. Anschließend wird die Gaanzzahlvariable y mit dem Initialisierungswert 5 eingerichtet und der Rückgabewert (der Wert 5) der Variablen x zugewiesen.
Variablen werden in einer Hierarchie von Variablentabellen gespeichert. An oberster Stelle steht die globale Variablentabelle, an unterster Stelle die lokale oder aktuelle Variablentabelle. Neue Variablen werden in der lokalen Variablentabelle generiert. Die Suche von Variablen erfolgt von unten nach oben. Im äußersten Verarbeitungsmodus stimmt die lokale Variablentabelle mit der globalen Variablentabelle überein.
Zu jedem vordefinierten Datentyp im EFEU-Interpreter gibt es einen zugehörigen Datentyp in C. Der Interpreter kennt keine Pointer, aber manche Datentypen werden durch Pointer auf C-Datentypen repräsentiert.
Der Interpreter unterscheidet zwischen L-Werten und Konstanten. Ein L-Wert ist alles, was auf der linken Seite einer Zuweisung stehen darf. Typische L-Werte sind Variablen. Das Resultat eines Terms oder eines Funktionsaufrufes kann ein L-Wert sein.
Ganzzahltypen
Wie in C/C++ gibt es eine Reihe von Ganzzahldatentypen. Die folgende Tabelle listet die Ganzzahltypen und ihre Äquivalente in C auf.
| esh Type | C Type |
| bool | int |
| int8_t | int8_t |
| int16_t | int16_t |
| int | int |
| int32_t | int32_t |
| int64_t | int64_t |
| varint | int64_t |
| uint8_t | uint8_t |
| uint16_t | uint16_t |
| unsigned | unsigned int |
| uint32_t | uint32_t |
| uint64_t | uint64_t |
| varsize | uint64_t |
Das Schlüsselwort unsigned ist ein Datentypnamen und
keine Typqualifikation wie in C. Die Datentypen varint und varsize
unterscheiden sich von int64_t und uint64_t durch eine kompakte,
wertabhängige Darstellung in Binärdateien.
Die Syntax von Ganzzahlkonstanten ist wie in C/C++.
Die Schlüsselworter true (Ganzzahlwert 0) und false
(Ganzzahlwert 1) sind vom Typ bool.
Gleitkommatypen
Der EFEU-Befehlsinterpreter verwendet die Gleitkommatypen float und
double wie in C/C++. Alle Gleitkommakonstanten sind vom Type double.
Die gesamte Arithmetik wird mit double durchgeführt, float
wurde nur aus Gründen der Vollständigkeit und für große Datenfelder,
wo die Genauigkeit der Werte nicht so wichtig ist, eingerichtet.
Zeichen und Zeichenketten
Ein Zeichen in esh ist vom Type char und sein Kodewert wird als
vorzeichenlos interpretiert (Wertebereich 0 ... 255).
Weiters steht zur Speicherung von Unicodezeichen der Datentyp
wchar_t zur verfügung. Der zugehörige C-Datentyp ist int32_t und
nicht wchar_t.
Zeichenketten (Strings) werden in esh völlig anders als in C implementiert.
Sie werden nicht als Felder vom Type char eingerichtet, sondern
haben den Datentyp str, der über einen char Pointer eingerichtet
wird. Falls einem String ein Wert zugeordnet wird, wird die gesamte
Zeichenkette und nicht die Adresse kopiert. Stringkopien erfolgen immer
mit dynamischer Speicherzuweisung und es gibt eine
Speicherbereinigung (Garbage-Collection) für Strings und generell für
alle Objekte mit dynamisch zugewiesenem Speicherbereich.
Zeichenkonstanten werden von einfachen, Stringkonstanten von doppelten Hochkommas begrenzt. Der Gegenschrägstrich wird wie in C als Fluchtsymbol verwendet.
Für lange Stringkonstanten gibt es das Schlüsselwort string, welches
in der folgenden Form verwendet wird:
string !
Inhalt des Strings
!
Unmittelbar nach ! muß ein Zeilenvorschub stehen und ! muss
das erste Zeichen der letzten Zeile sein. Eine so definierte
Zeichenkonstante enthält immer einen Zeilenvorschub am Ende.
Der Gegenschrägstrich wird nur mehr zum Schutz eines ! am Anfang
einer Zeile verwendet. Diese Konstruktion kann an beliebiger Stelle
innerhalb eines Ausdrucks stehen.
Innerhalb solcher Stringdefinitionen werden Kommentare im C/C++-Style überlesen und Präprozessor-Direktiven interpretiert.
So kann zum Beispiel mit
str s = string !
#include "file"
!;
der Inhalt der Datei file in den String s geladen werden. Aber Achtung: Die Datei file wird vom Präprozessor überarbeitet.
Anmerkung: In EFEU (und damit auch in esh) können Nullstrings
(Zeichenpointer auf NULL) wie gewöhnliche Strings verwendet werden.
Nullstrings werden jedoch anders als Leerstrings (Zeichenketten, die
nur aus der Abschlußnull bestehen) behandelt. Die EFEU-Bibliotheken
beinhalten eine Reihe von Hilfsfunktionen zur Handhabung von
Zeichenketten mit dynamisch zugewiesenem Speicher. Auch können sie mit
Stringkonstanten gemischt werden. Die Speicherverwaltungsfunktionen
von EFEU wissen, ob der Speicher eines Strings freigegeben werden
kann.
Pointertypen
Datentypen, die über Pointer implementiert werden, kopieren bei einer
Zuweisung nur die Adresse und nicht die Daten (Zeichenketten sind
eine Ausnahme). Aber sie benutzen einen Referenzzähler für
die Speicherbereinigung, der beim Kopieren erhöht wird.
Alle diese Datentypen sind von der Basisklasse _Ref_ abgeleitet.
Der Datentyp _Ref_ und alle anderen Datentypen mit
Pointerrepräsentation (wie str) sind wiederum vom Datentyp _Ptr_
abgeleitet, dieser ist auch der Typ der Konstanten NULL.
Datentypen mit einem Unterstreichungszeichen am Anfang und Ende des
Namens sind für die interne Verwendung reserviert. Normalerweise
werden keine Variablen dieser Typen deklariert. Aber sie können in
Argumentlisten von virtuellen Funktionen auftreten, etwa um zwischen
der Konstanten NULL (vom Type _Ptr_) und einer Zeichenkette,
die mit NULL initialisiert wurde, zu unterscheiden.
Listen
Listen sind geordnete Mengen von Objekten beliebiger Datentypen.
Sie haben den Type List_t. Es gibt drei Methoden, um Listen zu
erzeugen:
{ 3, 5 }. Er kann nicht zu
Beginn eines Ausdrucks verwendet werden, da { ... } auch
für Blöcke verwendet wird.
3, 5. Beachte die niedrige Priorität
des Operators. In Termen muß er geklammert werden. Es können
nur Listen mit mindestens zwei Elementen erzeugt werden.
3 : 5 : 2. Alle Mitglieder haben
den gleichen Datentyp.
List_t hat die folgenden Komponenten:
obj
liefert den ersten Eintrag der Liste oder NULL bei leeren
Listen.
next
liefert die Teilliste, die beim zweiten Element startet oder eine leere Liste, falls keine Elemente mehr existieren.
Datenfelder
Datenfelder können auf zwei Arten deklariert werden:
[dim]
deklariert name als Datenfeld vom Type type.
[dim] name
deklariert name als Skalar vom Type type[dim].
Falls mehr als eine Dimension benötigt wird, wird eine Deklaration der Form:
type namein[n0][n1]...[nk];
typekonvertiert, da Datenfelder nur eindimensional sein können, aber es keine Beschränkungen bei der Konstruktion von Vektordatentypen gibt. Es ist klar, dass nur n0 weggelassen werden kann.[nk]...[n1]name[n0];
Datenfelder werden bei der Verwendung immer in ein Objekt vom Typ
EfiVec gepackt.
Ein Datenfeld kann in eine Liste konvertiert werden und die Werte
eines Datenfeldes können durch Zuweisung einer Liste verändert werden.
Falls eine Liste weniger Elemente enthält, als das Datenfeld auf der
linken Seite, werden nur die zugehörigen Elemente verändert.
Neben den gewöhnlichen Datenfeldern stehen in EFEU noch die folgenden Datentypen für ein mächtigeres Hantieren mit Daten zur Verfügung:
EDB
ist eine Datenschnittstelle zur Manipulation großer Datenmengen.
TimeSeries
sind dynamische Datenfelder vom Type double mit einem
Zeitindex.
mdmat
verwaltet einen Datenwürfel beliebigen Typs und beliebiger Zahl an Dimensionen. Seine Größe wird nur durch den verfügbaren Speicher begrenzt. EFEU enthält eine Reihe von Hilfswerkzeugen zur Manipulation solcher Datenwürfel.
Abgeleitete Datentypen
Der einfachste Weg um einen neuen Datentyp einzurichten, ist
typedef, z.B:
typedef int myint;
Der neue Datentyp myint wird
von int als Basisklasse abgeleitet (Vererbung).
Damit kann myint wie int verwendet werden, ist aber nicht
nur ein anderer Namen für int wie in C.
Strukturen werden mit der struct Anweisung erzeugt. Die Syntax ist
analog zu C++. Fals base definiert ist, wird type von base abgeleitet. Nur ein Basistype kann angegeben werden. Der EFEU-Interpreter kennt keine Mehrfachvererbung.structtype [:base [ name ]]{Deklarationen}
Die folgenden zwei Datentypen
struct T1 {
int a;
int b;
}
struct T2 : int a {
int b;
}
haben gleiche Komponenten, aber nur T2 kann stellvertretend für ein
int verwendet werden.
Jeder zuvor definierte Datentyp kann bei der Definition einer Datenstruktur verwendet werden. Es gibt aber keine Vorwärtsdeklaration.
Jedes Objekt mit einem Strukturdatentyp kann in eine Liste umgewandelt werden und jede Liste läßt sich in ein Strukturobjekt konvertieren.
Beispiel für eine etwas komplexere Struktur:
struct MyDataType {
int i;
double d;
str s;
int v[10];
};
Datentypen müssen nicht benannt werden. Eine Variable kann z.B. auch mit einer namenlosen Struktur eingerichtet werden:
struct {
int i;
double d;
} data;
Falls eine gleichwertige, benannte Struktur existiert, wird diese Stellvertretend eingesetzt. Sollten mehr als zwei gleichwertige Strukturen existieren, ist undefiniert, welche zum Zug kommt. Zwei Strukturen sind gleichwertig, wenn alle Komponenten gleichen Namen und Datentyp haben.
Der EFEU Interpreter unterstützt Aufzählungstypen. Die Syntax ist:
mit einer durch Komma getrennten Liste von Kennungen mit optionalen Zuweisungswert. Die Kennungen werden an den Aufzählungstype gebunden. Sie können unmittelbar nach ihrer Deklaration (also bereits für die nächste Kennung innerhalb der Aufzählungsdeklaration) verwendet werden.enumtype [:base [ name ]]{Kennungsliste}
Die folgende Anweisung:
enum Color { Red, Green = 5, Blue };
erzeugt einen Aufzählungstype mit Namen Color und den Kennungen
Color::Red, Color::Green und Color::Blue. Die zugehörigen Ganzzahlwerte
sind 0, 5 und 6. Für jeden Aufzählungstype werden Konverter
von/nach int/str eingerichtet. Daher sind die folgenden
Zuweisungen alle gültig:
Color c1 = "Red"; Color c2 = 0; str s = Color::Red; int n = Color::Red;
Die Funktion enumlist(Typ) liefert eine Liste aller Kennungen
des Aufzählungstypes Typ oder eine leere Liste, falls Typ keine
Kennungen hat oder kein Aufzählungstype ist. Vergleiche dazu auch
den Abschnitt KLASSIFIKATIONEN weiter unten.
Konstruktion von Datentypen mit Ausdrücken
Datentypen können auch über eine Konstruktionsfunktion eingerichtet werden. Das Grundprinzip ist einfach: Eine Datenstruktur wird über eine Liste von Ausdrücken definiert. Der Datentyp (und teilweise auch der Variablenname) kann implizit aus dem Ausdruck abgeleitet werden. Ein so abgeleiteter Datentyp ist unbenannt (außer es existiert eine benannte, gleichwertige Datenstruktur).
Die Möglichkeiten dieser Datentypkonstruktionen werden am besten an einem Beispiel demonstriert:
Der folgende Code
construct DATA : int a, double b {
str date = today();
a;
data = {
double x = 3 * a;
y = 2 * b;
};
}
generiert die Datenstruktur
struct DATA {
str date;
int a;
struct {
double x;
double y;
} data;
}
und die Konstruktionsfunktionen
virtual DATA DATA (List_t) virtual DATA DATA (int a, double b)
Die Variante mit der Liste als Argument wird für jede Struktur
eingerichtet. Die spezifisch mit construct eingerichtete Version
hat die Parameter int a, double b, wie sie in der ersten Datenzeile
angegeben wurde.
Der Aufruf DATA(2, 3.5) generiert ein Objekt vom Typ DATA mit den
folgenden Werten:
{"2011-12-04", 2, {6.00000, 7.00000}}
Die allgemeine Syntax ist:
wobei vardef entweder eine einfache Variable in der FormconstructTyp [:varlist ]{
vardef;
...
}
[[type] name ] [oder eine Teilstruktur mit Syntax=expr ];
nameist. Der Datentyp type ist optional und wird aus dem Wert von expr bestimmt. Falls expr eine Strukturkomponente ist, kann auch der Name name entfallen. Umgekehrt kann bei bekannten Datentyp und Variablennamen der Ausdruck expr entfallen.= {
[[type] name ] [=expr ];
...}
Die Variablenliste varlist kann auch leer sein. In diesem Fall können bei expr nur globale Variablen genutzt werden.
Diese Form der Datentypkonstruktion wird implizit bei der Aufbereitung und Unmformung von EDB-Datenfiles genutzt.
AUSDRÜCKE
Konstanten und Variablen können mit Operatoren zu einfachen Ausdrücken verknüpft werden.
Die nachfolgenden Tabellen zeigen die verfügbaren Operatoren von esh,
sie sind absteigend nach ihrer Priorität aufgelistet. Operatoren, die
nicht durch eine horizontale Linie voneinander getrennt sind, haben
die gleiche Priorität.
| Linke Operatoren | ||
| :: | global | ::name |
| ++ | pre increment | ++lvalue |
| -- | pre decrement | --lvalue |
| ~ | complement | ~expr |
| ! | not | !expr |
| - | unary minus | -expr |
| + | unary plus | +expr |
| { | list grouping | { expr [, expr ] } |
| ( | grouping | ( expr ) |
| [ | expression | [ expr ] |
| () | cast (type conversion) | (type) expr |
| () | lvalue cast | (type &) expr |
Der »list grouping« Operator generiert eine Liste von Werten. Im Genensatz zu C/C++ ist dieser Operator nicht auf die Initialisierung von Variablen in Deklarationen beschränkt.
Der »expression« Operator liefert einen Ausdruck ohne ihn auszuwerten. Er kann einer Variablen zugewiesen oder einer Funktion für eine spätere Auswertung übergeben werden.
Ein Datentyp, der von runden Klammern eingeschlossen ist, bildet einen Cast-Operator, der eine Umwandlung des nachfolgenden Terms auf den gewünschten Datentyp erzwingt.
Der EFEU-Interpreter erlaubt auch casts von L-Werten. Diese sind für alle Datentypen zulässig, für die es wechselseitige Konvertierungen gibt.
Beispiel: Durch die Anweisungen
str s = "5"; (int &) s++;wird die Zeichenkette
s auf "6" gesetzt.
| Rechte Operatoren | ||
| ++ | post increment | lvalue++ |
| -- | post decrement | lvalue-- |
| :: | scope resolution | type::name |
| :: | variable selection | vartab::name |
| . | member selection | expr.name |
| [] | subscripting | expr[expr] |
| () | function call | expr(list) |
In esh kann auf die Variablentabellen direkt zugegriffen werden und
es können eigene Variablentabellen generiert werden. Mithilfe des
»scope resolution« Operators kann auf ein Element der Tabelle
zugegriffen werden. Dieser Operator kann auf jeden Datentyp
angewendet werden, der sich in eine Variablentabelle
(Type VarTab) konvertieren läßt.
| Arithmetische Operatoren | ||
| * | multiply | expr * expr |
| / | division | expr / expr |
| % | modulo (remainder) | expr % expr |
| + | add (plus) | expr + expr |
| - | subtract | expr - expr |
| << | shift left | expr << expr |
| >> | shift right | expr >> expr |
| Vergleichsoperatoren | ||
| < | less than | expr < expr |
| <= | less than or equal | expr <= expr |
| > | greater than | expr > expr |
| >= | greater than or equal | expr >= expr |
| == | equal | expr == expr |
| != | not equal | expr != expr |
| Bitoperatoren | ||
| & | bitwise AND | expr & expr |
| ^ | bitwise exclusive OR | expr ^ expr |
| | | bitwise inclusive OR | expr | expr |
| Logische Operatoren | ||
| && | logical AND | expr && expr |
| || | logical OR | expr || expr |
Der rechte Operand eines logischen Operators wird nur ausgewertet, wenn das Resultat nicht bereits vom linken Operanden determiniert wird. So wird in
der rechte Operand expr niemals ausgewertet.false &&expr
true ||expr
| Bedingter Ausdruck und Bereichsoperator | ||
| ? : | conditional operator | cond ? expr1 : expr2 |
| : : | range operator | start : end [ : step ] |
Der Bereichsoperator liefert eine Liste von Werten, beginnend bei start bis einschließlich end. Je nachdem, ob start kleiner oder größer als end ist, werden die einzelnen Elemente um step erhöht bzw. verkleinert. Für step dürfen nur positive Werte angegeben werden, die Vorgabe ist 1. Der Operator kann überladen werden. Eine falsche Verwendung kann in einer Endlosschleife enden. Es gibt keinen Bereichsoperator in C/C++.
| Zuweisungsoperatoren | ||
| = | simple assignment | lvalue = expr |
| *= | multiply and assign | lvalue *= expr |
| /= | divide and assign | lvalue /= expr |
| %= | modulo and assign | lvalue %= expr |
| += | add and assign | lvalue += expr |
| -= | subtract and assign | lvalue -= expr |
| <<= | shift left and assign | lvalue <<= expr |
| >>= | shift right and assign | lvalue >>= expr |
| &= | AND and assign | lvalue &= expr |
| ^= | exclusive OR and assign | lvalue ^= expr |
| |= | inclusive OR and assign | lvalue |= expr |
Zuweisungsoperatoren sind rechtsassoziativ.
| Listentrenner | ||
| , | list separator | expr , expr |
Das Komma , wird von esh so wie von python als Listentrenner und nicht
als Komma-Operator wie in C/C++ verwendet.
Der Ausdruck a, b, ..., n
liefert eine Liste mit den Elementen a, b, ..., n.
Falls der Rückgabewert nicht verwendet wird (die übliche Anwendung), gibt es keinen Unterschied im Verhalten vom Komma-Operator und Listentrenner.
Schleifen
while (cond) cmd
Definiert eine Schleife. Der Ausdruck cmd wird solange ausgeführt, wie cond logisch wahr ist. Bei cmd handelt es sich entweder um eine einfache Befehlszeile oder einen Block.
do cmd while (cond)
for (a; cond; b) cmd
for (name in list) cmd
break Anweisung
verlassen werden. Die continue Anweisung startet einen neuen Zyklus.
Bedingungen
if (cond) cmd1
Falls die Bedingung cond wahr ist, wird cmd1 ausgeführt.
if (cond) cmd1 else cmd2
Falls die Bedingung cond wahr ist, wird cmd1 ausgeführt, ansonsten wird cmd2 ausgeführt.
Switch-Anweisung
Die Syntax der Switch-Anweisung lautet:
switch (expr)
{
label:
cmdlist
label:
cmdlist
...
}
wobei label wahlweise case val oder default sein kann.
Der Ausdruck val wird dabei bereits beim Einlesen der Anweisung
ausgewertet. Der Wert von expr wird mit den einzelnen Werten der
Labels in der Reihenfolge des Auftretens verglichen.
Falls der Vergleich wahr liefert, werden alle nachfolgenden
Anweisungen bis zum Erreichen eines der Anweisungen
break, continue, return oder dem Ende des Switch-Blocks
ausgeführt. Falls keiner der Labels mit expr übereinstimmt,
werden die Anweisungen nach default (falls vorhanden) ausgeführt.
Im Gegensatz zu C kann jeder Datentyp, für den der Vergleichsoperator ==
definiert ist, für Switch-Anweisungen verwendet werden.
Insbesonders können Zeichenketten und reguläre Ausdrücke
in Switch-Anweisungen verwendet werden.
Blockbildung
Mithilfe von geschwungenen Klammern lassen sich einzelne Ausdrücke zu
einem Block zusammenfassen. Bei der Ausführung eines Blocks werden zwei
zusätzliche Variablentabellen aktiviert. Die weniger sichtbare wird
bereits beim Lesen der Befehlszeilen, die zweite bei der
Ausführung (und bei einer Schleife jedesmal neu) eingerichtet.
Jeder Ausdruck nach dem Schlüsselwort static wird bereits beim
Lesen der Befehlszeilen ausgewertet. Damit können Variablen in der
inneren (oder statischen) Variablentabelle eingerichtet werden.
Die Verwendung von static ist aber nicht auf Variablendeklarationen
beschränkt.
FUNKTIONEN
Eine Funktionsdefinition in esh hat die allgemeine Form
type nameNormalerweise ist expr ein Block von Ausdrücken, in(arglist)
expr
esh kann aber
auch ein einzelner (nicht leerer) Ausdruck stehen. Falls die Funktion
keinen Wert zurückliefern soll, ist als Datentyp void zu verwenden.
Die folgenden Funktionsdefinitionen sind gleichwertig:
int f (int x) x + 1;
int f (int x) return x + 1;
inline int f (int x) { return x + 1; }
Im EFEU-Befehlsinterpreter hat das Schlüsselwort inline
primär etwas mit Sichtbarkeit zu tun. Eine inline Funktion sieht alle
Variablentabellen, die auch in der Zeile mit dem Funktionsaufruf
sichtbar waren. Alle Funktionen, die nur aus einem einzelnen Ausdruck
bestehen, gelten als inline Funktionen.
Das folgende Beispiel zeigt einen Anwendungsfall für das Schlüsselwort
inline:
inline str f (str fmt)
{
return psub(fmt);
}
{
str x = "foo";
f("x = $(x)");
}
Die Funktion psub substituiert Parameter entsprechend einem
Formatstring.
Falls f nicht inline ist, ist die Variable x für psub
unsichtbar und die Substitution $(x) schlägt fehl.
Der Overhead für den Aufruf einer inline-Funktion ist geringer als der einer normale Funktion, allerdings kann es zu Seiteneffekten bezüglich der Sichtbarkeit von Variablen kommen.
Funktionen haben den Datentyp Func und jede Funktion kann
auch als Variable (Funktionsname ohne Argumentliste) angesprochen werden.
Die Standarddarstellung einer Funktion (z.B: Eingabe des
Funktionsnamens im äußersten Modus) ist der Prototype der Funktion.
Wie in C++ können Funktionsargumente Vorgabewerte besitzen. Diese müssen dann beim Aufruf nicht angegeben werden. Die allgemeine Form eines Funktionsarguments ist:
type [Das&] name [=value ]
& zeigt an, dass das Argument ein gültiger L-Wert sein muss.
Eine Tilde ... anstelle des
Funktionsarguments steht für eine variable Argumentliste. Auf sie kann
innerhalb der Funktion unter dem Namen va_list zugegriffen werden.
Virtuelle Funktionen
Wie in C++ können Funktionen mit verschiedenen Argumentlisten
überladen werden. Überladene Funktionen werden mit dem Schlüsselwort
virtual deklariert. Der Datentyp solcher Funktionen ist VirFunc.
Jede Funktion kann in eine virtuelle Funktion konvertiert werden.
Eine virtuelle Funktion kann auch in eine gewöhnliche Funktion umgewandelt werden. Dies erfolgt mit einem Prototyp-Cast wie im folgendem Beispiel:
Func f = operator+ (int a, int b);;
Nun kann f zur Addition von zwei Ganzzahlwerten verwendet werden. Beachte die zwei Strichpunkte am Ende der Zuweisung: Der erste gehört zum Prototyp (und unterscheidet ihn von einer Funktionsdefinition), der zweite schließt den Ausdruck ab.
Typgebundene Funktionen
Funktionen können auch an einen Datentyp gebunden werden. Sie haben die allgemeine Form:
type btype::name [&](arglist)
expr
Falls nach dem Funktionsnamen ein & steht, kann die Funktion nur
für L-Werte verwendet werden.
Eine gebundene Funktion wird folgend aufgerufen:
obj.name(args)
Dabei ist obj ein Objekt vom Type btype.
Der Datentyp einer typgebundenen Funktion ist ObjFunc. Dabei
kann es sich sowohl um eine virtuelle, als auch um eine gewöhnliche
Funktion handeln.
In gebundenen Funktionen kann mit dem Schlüsselwort this auf
das zugehörige Datenobjekt zugegriffen werden.
Operatoren
Operatoren werden intern wie Funktionen behandelt. Mit dem Schlüsselwort
operator kann ein Operatorname direkt angesprochen werden.
Folgende Schreibweisen sind zulässig:
operatorop
operator "op"
Bei der ersten Schreibweise muß nach op ein Leerzeichen folgen, vor op kann ein Leerzeichen stehen.
Damit linke Operatoren von rechten unterscheidbar sind, werden sie
intern mit dem Zusatz () versehen (z.B: -() für die Negation.
Dies ist bei der Definition von Funktionen zu beachten.
Folgende Terme sind gleichwertig:
a + b
operator+ (a, b)
Operatoren sind in der Regel virtuelle Funktionen. Alle Zuweisungsoperatoren sind gebundene, virtuelle Funktionen.
Spezielle Funktionen
Funktionen, die den gleichen Namen wie ein zuvor definierter Datentyp haben, definieren Konstruktoren und Konverter. Konverter werden meist indirekt bei Zuweisungen, der Wertübergabe bei Funktionsaufrufen oder durch explizite Typumwandlungen (casts) aufgerufen.
Konstruktoren haben die Form
virtual type typeDie spezielle Form(arglist)
type type ()
wird Copy-Konstruktor genannt. Ist er definiert, wird er jedesmal beim
Kopieren eines Datenelementes aufgerufen.
Im Gegensatz dazu ist
type type (void)
ein gewöhnlicher Konstruktor ohne Argumente.
Konverter haben die Form
tg_type src_type ()
mit einer leeren Argumentliste.
Die Ausgangsdaten werden unter dem Namen this referiert.
Falls der Zieldatentype void ist, definiert die Funktion
den Destruktor für den Datentyp, der jedesmal aufgerufen wird,
wenn ein Objekt diesen Types gelöscht wird.
Copy-Konstruktor und Destruktor können als Spezialfall eines Konverters gesehen werden. Wegen der internen Speicherbereinigung werden sie kaum benötigt. Bei ihrer Definition ist besondere Vorsicht notwendig: Sobald hier ein Objekt dieses Types kopiert wird (z.B. bei der Weitergabe an eine andere Funktion), führt der Aufruf des Konstruktors/Destruktors zu einer endlosen Rekursion.
KLASSIFIKATIONEN
Der EFEU-Interpreter bietet vielfältige Möglichkeiten, um Daten zu Klassifizieren. Implizit wird dabei immer auch ein unbenannter Aufzählungstyp eingerichtet.
Es gibt zwei Möglichkeiten, eine Klassifikation einzurichten:
bool Type_t::classification (str name, str def)
generiert zu einem Datentyp eine Komponente name, die bei Abfrage die Klassifikation des Wertes liefert.
virtual Expr_t classification (. &, str def)virtual Expr_t classification (Expr_t, str def)
liefert einen Ausdruck, der bei Auswertung die Klassifikation liefert. Der Klassifikationausdruck kann wahlweise für einen L-Wert oder einen Ausdruck eingerichtet werden.Die Klassifikationsdefinition def hat immer den gleichen Aufbau. Zu Beginn steht die Art der Klassifikation. Die verfüggbaren Klassifikationsarten sind Datentypabhängig.
Folgende Klassifikationsarten stehen für alle Datentypen zur Verfügung:
Entscheidung über einen Ausdruck.
Einteilung über eine switch-Anweisung.
Einteilung über einen Testausdruck
Kombination der obengenannten Klassifikationsarten.
switch, test und flag sind Sonderfälle
der generische Klassifikationsart generic. Diese hat den folgenden
Aufbau:
generic-group:generic
generic-group
...
switch-groupDer Eintrag
test-group
@evalexpr
@otherlabel desc
@eval dient zur Berechnung von Zwischenergebnissen.
@other steht für alle noch nicht abgedeckten Fälle.
test-group:
In expr wird@testexpr
key label desc
generic-group
@end
$1 gegen den aktuellen Schlüssel key ersetzt.
switch-group:
@case
key label desc
generic-group
@end
BEMERKUNGEN
Dieser Handbucheintrag kann nur eine verkürzte Darstellung des Interpreters liefern. An einem entsprechend umfangreichen Buch wird gearbeitet. Einzelne Kapitel dieses Buches sind bereits in den Dokumentationen zu EFEU enthalten.
Zusätzliche Informationen können mit esh selbst abgerufen werden.
Die Option --info liefert eine Schnittstelle zu eingebauten Informationen.
Im Interpreter kann auf diese Informationen mit der Funktion Info()
zugegriffen werden.
Die Nutzung der eingebauten Informationen hat den Vorteil, dass sie immer vollständig und aktuell sind. Allerdings sind die zugehörigen Erläuterungen (wenn es welche gibt) sehr knapp gehalten.
Falls die Verwendung einer Funktion nicht klar ist: Durch Eingabe des Funktionsnamens wird der Prototype (bei virtuellen Funktionen auch alle Überladungen) angezeigt.
Informationen zu einem Datentyp foo können interaktiv mithilfe von
foo.info(["mode"]) abgerufen werden.
Diese Anweisung entspricht dem Aufruf von esh mit der Option
--info=[mode:]/Type/foo. Die Angabe von mode ist optional.
Einzelne Parameter eines Datentyps können auch über Komponenten
abgerufen werden. Eine Liste aller verfügbaren Komponenten kann mit
Type_t.var abgerufen werden.
Weitere nützliche Variablen und Funktionen:
global
ist die Tabelle der globalen Variablen (sehr umfangreich).
local
ist die Tabelle der lokalen Variablen.
Im äußeren Modus stimmt local mit global überein.
str whatis (.)
liefert Informationen zu dem Argument. liefert den Datentyp des Arguments.
void vtabstack (int = 0, IO = iostd)
zeigt die aktuelle Hierarchie der Variablentabellen.
List_t typelist ()
liefert eine Liste aller definierten Datentypen.
void Type_t::info (str mode = NULL)
liefert Informationen zu einem bestimmten Datentyp.
UMGEBUNGSVARIABLEN
APPLPATH
definiert zusätzliche Verzeichnisse für Konfigurationsdateien.
LANG
bestimmt die Sprache für Meldungen und Hilfetexte.
ESHPATH
erweitert den Suchpfad für Skriptfiles.
COPYRIGHT
Copyright (C) 1994, 2001 Erich Frühstück
ÜBERSICHT
findgrep
[ --help[=type] ]
[ --version ]
[ grep-options ]
[ pat | -e pat | -F pat | -f file ]
dir
[ find-options ]
BESCHREIBUNG
Das Kommando findgrep stellt mit find eine Liste von Dateien
zusammen, die anschließend mit grep nach dem Muster Muster
durchsucht werden. Damit der Umgebungspeicher nicht überläuft, wird
xargs zum Aufruf von grep verwendet.
Die grep-Optionen werden nicht geprüft, sondern nur durchgeschleußt.
Find wird automatisch mit den Flags -type f und -print aufgerufen.
Falls find -print0 ünterstützt, wird diese Option anstelle von -print
verwendet. Daduch können auch Dateien mit Leerzeichen und anderen
Sonderzeichen im Namen verarbeitet werden.
SIEHE AUCH
grep(1), find(1), xargs(1).
COPYRIGHT
Copyright (C) 2001 Erich Frühstück
ÜBERSICHT
htmlindex
[ --help[=type] ]
[ --version ]
[ --info[=entry] ]
[ --debug[=mode] ]
[ --verbose ]
[ name ]
BESCHREIBUNG
Die folgenden Optionen und Argumente werden vom Kommando htmlindex akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
--info[=entry]
listet verfügbare Informationseinträge des Kommandos auf.
--debug[=mode]
setzt den Protokollmodus für das Kommando. Vergleiche dazu .
--verbose
setzt den Debug-Level auf .info.
Ausgabefile
UMGEBUNGSVARIABLEN
APPLPATH
LANG
bestimmt die Sprache für Meldungen und Hilfetexte.
COPYRIGHT
Copyright (C) 2001 Erich Frühstück
ÜBERSICHT
mdcat
[ --help[=type] ]
[ --version ]
[ --info[=entry] ]
[ --debug[=mode] ]
[ --verbose ]
[ -T title ]
[ -n name ]
[ -m map ]
[ -o out ]
[ file(s) ]
BESCHREIBUNG
Die folgenden Optionen und Argumente werden vom Kommando mdcat akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
--info[=entry]
listet verfügbare Informationseinträge des Kommandos auf.
--debug[=mode]
setzt den Protokollmodus für das Kommando. Vergleiche dazu .
--verbose
setzt den Debug-Level auf .info.
-T title
Titel der Ausgabedatei setzen
-n name
Achsenbezeichner, Vorgabe X
-m map
Dateiabbild generieren
-o out
Name der Ausgabedatei
Eingabedatei(en)
UMGEBUNGSVARIABLEN
APPLPATH
LANG
bestimmt die Sprache für Meldungen und Hilfetexte.
COPYRIGHT
Copyright (C) 1997, 2001 Erich Frühstück
ÜBERSICHT
mdcmp
[ --help[=type] ]
[ --version ]
[ --info[=entry] ]
[ --debug[=mode] ]
[ --verbose ]
[ -F file ]
[ -E expr ]
[ -f func ]
[ -e expr ]
[ -r ]
[ -v var ]
[ -T title ]
file1
file2
{ name=var }
[ aus ]
BESCHREIBUNG
Die folgenden Optionen und Argumente werden vom Kommando mdcmp akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
--info[=entry]
listet verfügbare Informationseinträge des Kommandos auf.
--debug[=mode]
setzt den Protokollmodus für das Kommando. Vergleiche dazu .
--verbose
setzt den Debug-Level auf .info.
-F file
Datei file mit Befehlszeilen laden
-E expr
Ausdruck expr auswerten
-f func
Vergleichsfunktion
-e expr
Ausdruck
-r
Entfernen von singulären Achsen
-v var
Variablenselektion
-T title
Titel der Ausgabedatei setzen
Name der 1. Eingabedatei
Name der 2. Eingabedatei
name=var
Selektionsparameter
Name der Ausgabedatei
UMGEBUNGSVARIABLEN
APPLPATH
LANG
bestimmt die Sprache für Meldungen und Hilfetexte.
COPYRIGHT
Copyright (C) 1997, 2001 Erich Frühstück
ÜBERSICHT
mdcreate
[ --help[=type] ]
[ --version ]
[ --info[=entry] ]
[ --debug[=mode] ]
[ --verbose ]
[ -v value ]
[ -T title ]
[ -m map ]
type
{ name=var }
[ aus ]
BESCHREIBUNG
Die folgenden Optionen und Argumente werden vom Kommando mdcreate akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
--info[=entry]
listet verfügbare Informationseinträge des Kommandos auf.
--debug[=mode]
setzt den Protokollmodus für das Kommando. Vergleiche dazu .
--verbose
setzt den Debug-Level auf .info.
-v value
Vorgabewert für Datenwerte
-T title
Titel der Ausgabedatei setzen
Datentype
-m map
Dateiabbild generieren
name=var
Achsendefinitionen
Name der Ausgabedatei
UMGEBUNGSVARIABLEN
APPLPATH
LANG
bestimmt die Sprache für Meldungen und Hilfetexte.
COPYRIGHT
Copyright (C) 1997, 2001 Erich Frühstück
ÜBERSICHT
mddiag
[ --help[=type] ]
[ --version ]
[ --info[=entry] ]
[ --debug[=mode] ]
[ --verbose ]
[ -r ]
[ -v var ]
[ -T title ]
[ -x axis ]
[ -m map ]
ein
{ name=var }
[ aus ]
BESCHREIBUNG
Die folgenden Optionen und Argumente werden vom Kommando mddiag akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
--info[=entry]
listet verfügbare Informationseinträge des Kommandos auf.
--debug[=mode]
setzt den Protokollmodus für das Kommando. Vergleiche dazu .
--verbose
setzt den Debug-Level auf .info.
-r
Entfernen von singulären Achsen
-v var
Variablenselektion
-T title
Titel der Ausgabedatei setzen
-x axis
Name der Achse
-m map
Dateiabbild generieren
Name der Eingabedatei
name=var
Selektionsparameter
Name der Ausgabedatei
UMGEBUNGSVARIABLEN
APPLPATH
LANG
bestimmt die Sprache für Meldungen und Hilfetexte.
COPYRIGHT
Copyright (C) 1997, 2001 Erich Frühstück
ÜBERSICHT
mddiff
[ --help[=type] ]
[ --version ]
[ --info[=entry] ]
[ --debug[=mode] ]
[ --verbose ]
[ -E expr ]
[ -F file ]
[ -r ]
[ -v var ]
[ -p prec ]
file1
file2
{ name=var }
[ out ]
BESCHREIBUNG
Die folgenden Optionen und Argumente werden vom Kommando mddiff akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
--info[=entry]
listet verfügbare Informationseinträge des Kommandos auf.
--debug[=mode]
setzt den Protokollmodus für das Kommando. Vergleiche dazu .
--verbose
setzt den Debug-Level auf .info.
-E expr
Ausdruck expr auswerten
-F file
Datei file mit Befehlszeilen laden
-r
Entfernen von singulären Achsen
-v var
Variablenselektion
-p prec
Genauigkeit der Zahlenwerte
Name der 1. Eingabedatei
Name der 2. Eingabedatei
name=var
Selektionsparameter
Name der Ausgabedatei
UMGEBUNGSVARIABLEN
APPLPATH
LANG
bestimmt die Sprache für Meldungen und Hilfetexte.
COPYRIGHT
Copyright (C) 1998, 2001 Erich Frühstück
ÜBERSICHT
mdfile
[ --help[=type] ]
[ --version ]
[ --info[=entry] ]
[ --debug[=mode] ]
[ --verbose ]
[ -a ]
[ -s ]
[ -h ]
[ -d ]
[ -X ]
[ -x ]
[ -l ]
[ file(s) ]
BESCHREIBUNG
Die folgenden Optionen und Argumente werden vom Kommando mdfile akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
--info[=entry]
listet verfügbare Informationseinträge des Kommandos auf.
--debug[=mode]
setzt den Protokollmodus für das Kommando. Vergleiche dazu .
--verbose
setzt den Debug-Level auf .info.
-a
Status zu allen Dateien
-s
Achsenstruktur ausgeben
-h
Datentyp und Header ausführlich ausgeben
-d
Beschreibungstext ausgeben
-X
Achsen verkürzt auflisten
-x
Achsen ausführlich auflisten
-l
Lange Auflistung, entspricht -hdx
Datenfile(s)
UMGEBUNGSVARIABLEN
APPLPATH
LANG
bestimmt die Sprache für Meldungen und Hilfetexte.
COPYRIGHT
Copyright (C) 1997, 2001 Erich Frühstück
ÜBERSICHT
mdfunc
[ --help[=type] ]
[ --version ]
[ --info[=entry] ]
[ --debug[=mode] ]
[ --verbose ]
[ -F file ]
[ -E expr ]
[ -r ]
[ -m map ]
[ -v var ]
[ -T title ]
[ --neg ]
[ --not ]
[ --cpl ]
[ --rnd ]
[ -f func ]
[ -t type ]
[ -e expr ]
[ -x list ]
[ -p prec ]
file
{ name=var }
[ out ]
BESCHREIBUNG
Die folgenden Optionen und Argumente werden vom Kommando mdfunc akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
--info[=entry]
listet verfügbare Informationseinträge des Kommandos auf.
--debug[=mode]
setzt den Protokollmodus für das Kommando. Vergleiche dazu .
--verbose
setzt den Debug-Level auf .info.
-F file
Datei file mit Befehlszeilen laden
-E expr
Ausdruck expr auswerten
-r
Entfernen von singulären Achsen
-m map
Dateiabbild generieren
-v var
Variablenselektion
-T title
Titel der Ausgabedatei setzen
--neg
Negation
--not
Boolsche Negation
--cpl
Bitweises Komplement
--rnd
Runden auf Ganzzahlwerte
-f func
Funktion/Operator
-t type
Ausgabetype
-e expr
Ausdruck
-x list
Achsenliste für Spalten, Vorgabe "#-1"
-p prec
Genauigkeit der Zahlenwerte
Name der Eingabedatei
name=var
Selektionsparameter
Name der Ausgabedatei
UMGEBUNGSVARIABLEN
APPLPATH
LANG
bestimmt die Sprache für Meldungen und Hilfetexte.
COPYRIGHT
Copyright (C) 1997, 2001 Erich Frühstück
ÜBERSICHT
mdmul
[ --help[=type] ]
[ --version ]
[ --info[=entry] ]
[ --debug[=mode] ]
[ --verbose ]
[ -F file ]
[ -E expr ]
[ -r ]
[ -m map ]
[ -v var ]
[ -T title ]
[ -n dim ]
[ -x axis ]
[ -a name=var ]
[ -b name=var ]
file1
file2
{ name=var }
[ out ]
BESCHREIBUNG
Die folgenden Optionen und Argumente werden vom Kommando mdmul akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
--info[=entry]
listet verfügbare Informationseinträge des Kommandos auf.
--debug[=mode]
setzt den Protokollmodus für das Kommando. Vergleiche dazu .
--verbose
setzt den Debug-Level auf .info.
-F file
Datei file mit Befehlszeilen laden
-E expr
Ausdruck expr auswerten
-r
Entfernen von singulären Achsen
-m map
Dateiabbild generieren
-v var
Variablenselektion
-T title
Titel der Ausgabedatei setzen
-n dim
Zahl der gemeinsamen Achsen
-x axis
Name der gemeinsamen Achse
-a name=var
Selektionsparameter für die erste Datei
-b name=var
Selektionsparameter für die zweite Datei
Name der 1. Eingabedatei
Name der 2. Eingabedatei
name=var
Selektionsparameter für beide Datenfiles
Name der Ausgabedatei
UMGEBUNGSVARIABLEN
APPLPATH
LANG
bestimmt die Sprache für Meldungen und Hilfetexte.
COPYRIGHT
Copyright (C) 1997, 2001 Erich Frühstück
ÜBERSICHT
mdpaste
[ --help[=type] ]
[ --version ]
[ --info[=entry] ]
[ --debug[=mode] ]
[ --verbose ]
[ -r ]
[ -m map ]
[ -v var ]
[ -T title ]
[ -s ]
[ -u ]
[ -e expr ]
[ -n name ]
[ -o aus ]
{ name=var }
file(s) ...
BESCHREIBUNG
Die folgenden Optionen und Argumente werden vom Kommando mdpaste akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
--info[=entry]
listet verfügbare Informationseinträge des Kommandos auf.
--debug[=mode]
setzt den Protokollmodus für das Kommando. Vergleiche dazu .
--verbose
setzt den Debug-Level auf .info.
-r
Entfernen von singulären Achsen
-m map
Dateiabbild generieren
-v var
Variablenselektion
-T title
Titel der Ausgabedatei setzen
-s
sortiert die Achsenbezeichner
-u
sortiert die Achsenbezeichner, wobei gleiche Bezeichner nur einmal verwendet werden. Bei gleichen Bezeichnern werden die Daten der zuletzt angegebenen Datei entnommen.
-e expr
definiert einen Vergleichsausdruck für die Sortierung.
Im Ausdruck stehen die Variablen a und b für die
jeweiligen Achsenezeichner.
Falls expr nicht definiert ist,
wird cmp(a,b) verwendet.
-n name
definiert die Achse, bezüglich der die Daten zusammengehängt werden. Die Vorgabe ist #1.
-o aus
definiert die Ausgabedatei. Fehlt die Option, wird die resultierende Datenmatrix im ASCII-Format zur Standardausgabe geschrieben.
name=var
Selektionsparameter
ist die Liste der Eingabedatei(en).
UMGEBUNGSVARIABLEN
APPLPATH
LANG
bestimmt die Sprache für Meldungen und Hilfetexte.
COPYRIGHT
Copyright (C) 1997, 2001 Erich Frühstück
ÜBERSICHT
mdpermut
[ --help[=type] ]
[ --version ]
[ --info[=entry] ]
[ --debug[=mode] ]
[ --verbose ]
[ -r ]
[ -v var ]
[ -T title ]
file
{ name=var }
[ out ]
[ name(s) ]
BESCHREIBUNG
Die folgenden Optionen und Argumente werden vom Kommando mdpermut akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
--info[=entry]
listet verfügbare Informationseinträge des Kommandos auf.
--debug[=mode]
setzt den Protokollmodus für das Kommando. Vergleiche dazu .
--verbose
setzt den Debug-Level auf .info.
-r
Entfernen von singulären Achsen
-v var
Variablenselektion
-T title
Titel der Ausgabedatei setzen
Name der Eingabedatei
name=var
Selektionsparameter
Name der Ausgabedatei
Achsenbezeichner zum vorreihen
UMGEBUNGSVARIABLEN
APPLPATH
LANG
bestimmt die Sprache für Meldungen und Hilfetexte.
COPYRIGHT
Copyright (C) 1997, 2001 Erich Frühstück
ÜBERSICHT
mdprint
[ --help[=type] ]
[ --version ]
[ --info[=entry] ]
[ --debug[=mode] ]
[ --verbose ]
[ -F file ]
[ -E expr ]
[ -M mode ]
[ --ascii ]
[ --csv ]
[ --tex ]
[ --tab ]
[ --data ]
[ --sc ]
[ --std ]
[ --ps ]
[ --psq ]
[ --lp ]
[ --lpq ]
[ --mark ]
[ --nomark ]
[ -h ]
[ -b ]
[ -H ]
[ -t ]
[ -z ]
[ -L loc ]
[ --locale loc ]
[ -f font ]
[ -l width ]
[ -3 ]
[ -w width ]
[ -p prec ]
[ -d delim ]
[ -g ]
[ -e ]
[ -x list ]
[ -s list ]
[ -r ]
[ -R list ]
[ -v var ]
[ -T title ]
[ -P name=list ]
[ --paste name=list ]
[ --paste-delim key ]
[ -S list ]
[ --split list ]
file
{ name=var }
[ out ]
BESCHREIBUNG
Das Kommando mdprint dient zur Ausgabe einer Datenmatrix in Textformat.
Die folgenden Optionen und Argumente werden vom Kommando mdprint akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
--info[=entry]
listet verfügbare Informationseinträge des Kommandos auf.
--debug[=mode]
setzt den Protokollmodus für das Kommando. Vergleiche dazu .
--verbose
setzt den Debug-Level auf .info.
-F file
Datei file mit Befehlszeilen laden
-E expr
Ausdruck expr auswerten
-M mode
Ausgabemodus, Vorgabe "std"
--ascii
Aufbereitung als ASCII-Datei
--csv
Aufbereitung für excel
--tex
Aufbereitung für TeX
--tab
Aufbereitung für TeX-Tabellen
--data
Nur Datenwerte ausgeben
--sc
Aufbereitung für sc-Spreadsheet
--std
Fixe Spaltenausrichtung
--ps
Ausgabe als Postscriptfile, Hochformat
--psq
Ausgabe als Postscriptfile, Querformat
--lp
Ausgabe zum Drucker, Hochformat
--lpq
Ausgabe zum Drucker, Querformat
--mark
Spaltenbezeichner markieren
--nomark
Spaltenbezeichner unterdrücken
-h
Nur Header ausgeben
-b
Header unterdrücken
-H
Vollständigen Header ausgeben
-t
Nur Titel im Header ausgeben
-z
Nullwerte unterdrücken
-L loc, --locale loc
Lokale für Zahlendarstellung auf loc setzen
-f font
Fontgröße in pt
-l width
Breite der Zeilenbezeichner
-3
3-Stellige Gleitkommausrichtung
-w width
Feldbreite der Zahlenwerte
-p prec
Genauigkeit der Zahlenwerte
-d delim
Trennzeichen in Listen
-g
Universalformat verwenden
-e
Exponentialformat verwenden
-x list
Achsenliste für Spalten
-s list
Achsen aufsummieren
-r
Entfernen von singulären Achsen
-R list
Entfernen von singulären Achsen aus der Liste list
-v var
Variablenselektion
-T title
Titel der Ausgabedatei setzen
-P name=list, --paste name=list
Liste list von Achsen zu neuer Achse name zusammenfassen
--paste-delim key
Begrenzer für das Verkleben von Achsen, Vorgabe _
-S list, --split list
Datenmatrix nach Achse(n) list aufspalten.
Name der Eingabedatei
name=var
Selektionsparameter
Name der Ausgabedatei
[pfxkonstruiert. Dabei gibt namei jeweils die aktuelle Ausprägung der Achse i an. Das Trennzeichen_]name1[_name2][.sfx]
_ kann mit --paste-delim delim
geändert werden. Die Namensteile pfx und sfx werden aus dem
Ausgabenamen nach folgenden Regeln bestimmt:
-
(oder keine Angabe) pfx = NULL; sfx = default
a
pfx = a, sfx = default
.b
pfx = NULL, sfx = b
a.
pfx = a, sfx = NULL
a.b
pfx = a, sfx = b
--csv auf csv gesetzt
und ist ansonsten NULL.
UMGEBUNGSVARIABLEN
APPLPATH
definiert zusätzliche Verzeichnisse für Konfigurationsdateien.
LANG
bestimmt die Sprache für Meldungen und Hilfetexte.
SIEHE AUCH
esh(1).
COPYRIGHT
Copyright (C) 1997, 2001 Erich Frühstück
ÜBERSICHT
mdread
[ --help[=type] ]
[ --version ]
[ --info[=entry] ]
[ --debug[=mode] ]
[ --verbose ]
[ -x name ]
[ -y name ]
[ -t type ]
[ -M ]
[ -L loc ]
[ --locale loc ]
[ --sc ]
[ -r ]
[ -m map ]
[ -v var ]
[ -T title ]
file
{ name=var }
[ out ]
BESCHREIBUNG
Die folgenden Optionen und Argumente werden vom Kommando mdread akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
--info[=entry]
listet verfügbare Informationseinträge des Kommandos auf.
--debug[=mode]
setzt den Protokollmodus für das Kommando. Vergleiche dazu .
--verbose
setzt den Debug-Level auf .info.
-x name
Spaltenachsenname(n)
-y name
Zeilenachsenname(n)
-t type
Datentype
-M
Test auf Kennung
-L loc, --locale loc
Lokale für Zahlendarstellung auf loc setzen
--sc
SC-Spreadsheet konvertieren
-r
Entfernen von singulären Achsen
-m map
Dateiabbild generieren
-v var
Variablenselektion
-T title
Titel der Ausgabedatei setzen
Name der Eingabedatei
name=var
Selektionsparameter
Name der Ausgabedatei
UMGEBUNGSVARIABLEN
APPLPATH
LANG
bestimmt die Sprache für Meldungen und Hilfetexte.
COPYRIGHT
Copyright (C) 1997, 2001 Erich Frühstück
ÜBERSICHT
mdround
[ --help[=type] ]
[ --version ]
[ --info[=entry] ]
[ --debug[=mode] ]
[ --verbose ]
[ -r ]
[ -m map ]
[ -v var ]
[ -T title ]
[ -s val ]
[ -m val ]
file
{ name=var }
[ out ]
BESCHREIBUNG
Die folgenden Optionen und Argumente werden vom Kommando mdround akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
--info[=entry]
listet verfügbare Informationseinträge des Kommandos auf.
--debug[=mode]
setzt den Protokollmodus für das Kommando. Vergleiche dazu .
--verbose
setzt den Debug-Level auf .info.
-r
Entfernen von singulären Achsen
-m map
Dateiabbild generieren
-v var
Variablenselektion
-T title
Titel der Ausgabedatei setzen
-s val
adjustieren auf Matrixsumme val
-m val
Skalare Multiplikatcwion mit val
Name der Eingabedatei
name=var
Selektionsparameter
Name der Ausgabedatei
UMGEBUNGSVARIABLEN
APPLPATH
LANG
bestimmt die Sprache für Meldungen und Hilfetexte.
COPYRIGHT
Copyright (C) 1997, 2001 Erich Frühstück
ÜBERSICHT
mdselect
[ --help[=type] ]
[ --version ]
[ --info[=entry] ]
[ --debug[=mode] ]
[ --verbose ]
[ -F file ]
[ -E expr ]
[ -r ]
[ -m map ]
[ -s list ]
[ -v var ]
[ -T title ]
ein
{ name=var }
[ aus ]
BESCHREIBUNG
Die folgenden Optionen und Argumente werden vom Kommando mdselect akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
--info[=entry]
listet verfügbare Informationseinträge des Kommandos auf.
--debug[=mode]
setzt den Protokollmodus für das Kommando. Vergleiche dazu .
--verbose
setzt den Debug-Level auf .info.
-F file
Datei file mit Befehlszeilen laden
-E expr
Ausdruck expr auswerten
-r
Entfernen von singulären Achsen
-m map
Dateiabbild generieren
-s list
Achsen aufsummieren
-v var
Variablenselektion
-T title
Titel der Ausgabedatei setzen
Name der Eingabedatei
name=var
Selektionsparameter
Name der Ausgabedatei
UMGEBUNGSVARIABLEN
APPLPATH
LANG
bestimmt die Sprache für Meldungen und Hilfetexte.
COPYRIGHT
Copyright (C) 1997, 2001 Erich Frühstück
ÜBERSICHT
mdsum
[ --help[=type] ]
[ --version ]
[ --info[=entry] ]
[ --debug[=mode] ]
[ --verbose ]
[ -r ]
[ -v var ]
[ -T title ]
in
out
{ name=var }
[ name(s) ]
BESCHREIBUNG
Die folgenden Optionen und Argumente werden vom Kommando mdsum akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
--info[=entry]
listet verfügbare Informationseinträge des Kommandos auf.
--debug[=mode]
setzt den Protokollmodus für das Kommando. Vergleiche dazu .
--verbose
setzt den Debug-Level auf .info.
-r
Entfernen von singulären Achsen
-v var
Variablenselektion
-T title
Titel der Ausgabedatei setzen
Name der Eingabedatei
Name der Ausgabedatei
name=var
Selektionsparameter
Achsenbezeichner
UMGEBUNGSVARIABLEN
APPLPATH
LANG
bestimmt die Sprache für Meldungen und Hilfetexte.
COPYRIGHT
Copyright (C) 1997, 2001 Erich Frühstück
ÜBERSICHT
mdterm
[ --help[=type] ]
[ --version ]
[ --info[=entry] ]
[ --debug[=mode] ]
[ --verbose ]
[ -F file ]
[ -E expr ]
[ --add ]
[ --sub ]
[ --mul ]
[ --div ]
[ --min ]
[ --max ]
[ -f func ]
[ -t type ]
[ -e expr ]
[ -p prec ]
[ -r ]
[ -m map ]
[ -v var ]
[ -T title ]
file1
file2
{ name=var }
[ out ]
BESCHREIBUNG
Die folgenden Optionen und Argumente werden vom Kommando mdterm akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
--info[=entry]
listet verfügbare Informationseinträge des Kommandos auf.
--debug[=mode]
setzt den Protokollmodus für das Kommando. Vergleiche dazu .
--verbose
setzt den Debug-Level auf .info.
-F file
Datei file mit Befehlszeilen laden
-E expr
Ausdruck expr auswerten
--add
Punktweise Addition (default)
--sub
Punktweise Subtraktion
--mul
Punktweise Multiplikation
--div
Punktweise Division
--min
Minimum der beiden Werte
--max
Maximum der beiden Werte
-f func
Funktion/Operator
-t type
Ausgabetype
-e expr
Ausdruck
-p prec
Genauigkeit der Zahlenwerte
-r
Entfernen von singulären Achsen
-m map
Dateiabbild generieren
-v var
Variablenselektion
-T title
Titel der Ausgabedatei setzen
Name der 1. Eingabedatei
Name der 2. Eingabedatei
name=var
Selektionsparameter
Name der Ausgabedatei
UMGEBUNGSVARIABLEN
APPLPATH
LANG
bestimmt die Sprache für Meldungen und Hilfetexte.
COPYRIGHT
Copyright (C) 1997, 2001 Erich Frühstück
ÜBERSICHT
mksource
[ --help[=type] ]
[ --version ]
[ --info[=entry] ]
[ --debug[=mode] ]
[ --verbose ]
[ -I dir ]
[ -s ]
[ -V ]
[ -v ]
[ -l ]
[ -L name ]
[ -r ]
[ -x ]
[ --all name ]
[ --clean name ]
[ --depend name ]
[ --lock ]
[ --unlock ]
[ -d ]
[ -D name ]
[ -n name ]
[ -h ]
[ -c ]
[ -H hdr ]
[ -C src ]
[ -t ]
[ -T doc ]
name
BESCHREIBUNG
Das Kommando mksource
dient zur Generierung von C-Sourcefiles mithilfe
des EFEU-Befehlsinterpreters.
Bei der Eingabedatei handelt es sich um ein Skriptfile für den Befehlsinterpreter. Die Ausgabe erfolgt in die folgenden IO-Strukturen:
hdr
C-Headerfile
top
Kopzeilen im C-Sourcefile
src
C-Sourcefile
info
Infodatei für eis
tex
LaTeX-Dokumentation (siehe Anmerkung am Ende)
doc
Dokumentationsfile (siehe Anmerkung am Ende)
config list[=filename]
wobei list die gewünschten Ausgabestrukturen enthält, für die auch eine Datei generiert werden soll. Der Basisname der Ausgabedateien wird vom Basisnamen des Skriptfiles bestimmt. Es gibt aber auch die Möglichkeit, die Namen der Ausgabedateien explizit vorzugeben. Die Ausgabestruktur top kann nicht angesprochen werden, sie ist mit src gekoppelt.
Falls keine Headerdatei hdr konfiguriert wurde, werden die Ausgaben nach hdr in den Kopf der Sourcedatei geschrieben.
Das Kommando erlaubt auch die Generierung von Makefileregeln. Falls eines der entsprechenden Flags gesetzt ist, werden keine Dateien generiert und nur die Regeln zur Standardausgabe geschrieben.
Folgende Optionen und Argumente werden vom Kommando mksource akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
--info[=entry]
listet verfügbare Informationseinträge des Kommandos auf.
--debug[=mode]
setzt den Protokollmodus für das Kommando. Vergleiche dazu .
--verbose
setzt den Debug-Level auf .info.
-I dir
erweitert den Suchpfad für Skriptfiles um dir.
-s
Arbeitsschritte nicht protokollieren
-V
Arbeitsschritte kurz protokollieren
-v
Arbeitsschritte ausführlich protokollieren
-l
Liste der zu generierenden Dateien
-L name
Liste mit Namen name generieren
-r
Makefileregeln generieren
-x
Keine Pseudoziele für Makefileregeln
--all name
Name des Generierungszieles
--clean name
Name des Löschzieles
--depend name
Name des Ziels für Abhängigkeitsregeln
--lock
Filegenerierung sperren
--unlock
hebt eine vordefinierte Sperre auf
-d
Abhängigkeitsregeln generieren
-D name
Abhängigkeitsregel für name generieren
-n name
Basisname für Standardnamen
-h
Headerfile mit Standardnamen generieren
-c
Sourcefile mit Standardnamen generieren
-H hdr
Headerfile mit Namen hdr generieren
-C src
Sourcefile mit Namen src generieren
-t
(veraltet) TeX-Dokumentation mit Standardnamen generieren, andere Files sperren
-T doc
(veraltet) TeX-Dokumentation doc generieren, andere Files sperren
Skriptfile
SIEHE AUCH
esh(1),
function(7).
BEMERKUNGEN
Die Generierung von Dokumentationen wird derzeit von
LaTeX auf efeudoc umgestellt und kann daher nur begrenzt
verwendet werden.
COPYRIGHT
Copyright (C) 1994 Erich Frühstück
ÜBERSICHT
mksrclist
[ --help[=type] ]
[ --version ]
[ -f ]
[ -x ]
[ -e pat ]
top
[ name ]
BESCHREIBUNG
Das Kommando mksrclist generiert eine Liste von Dateien unterhalb von top.
Die folgenden Optionen und Argumente werden vom Kommando mksrclist akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
-f
Forcierte Neugenerierung der Ausgabedatei
-x
Berücksichtige Sourcgenerierung mit mksource.
-e pat
Dateien ignorieren, die dem Muster pat entsprechen
Hauptbibliothek der Sourcen
Name der Ausgabedatei für ein update
SIEHE AUCH
shmkmf(1), d2m.smh(7).
DIAGNOSE
Das Kommando mksrclist liefert 2, falls ein Fehler bei der Erzeugung der
Dateiliste auftrat. Falls die Dateiliste neu ist oder sich verädert hat,
ist der Rückgabewert 1. Bei unveränderter Dateiliste ist er 0.
COPYRIGHT
Copyright (C) 2000 Erich Frühstück
ÜBERSICHT
pp2dep
[ --help[=type] ]
[ --version ]
[ -l ]
[ -x pattern ]
[ target(s) ]
BESCHREIBUNG
Das Kommando pp2dep filtert aus der Ausgabe des C--Preprozessors
die Namen von eingebundenen Dateien und stellt daraus eine Abhängigkeitsliste
für die angegebenen Ziele target(s) zusammen.
Die folgenden Optionen und Argumente werden vom Kommando pp2dep akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
-l
Nur lokale Dateien auflisten
-x pattern
Dateien, die Muster name entsprechen, nicht auflisten
Liste der Generierungsziele
pp2dep erfolgt in einem Makefile der
Form:
file.o: file.c
$(CC) -c file.c
depend::
$(CC) -E -c file.c | pp2dep -l file.o >> Makefile
SIEHE AUCH
cc(1), make(1), shmkmf(1).
ÜBERSICHT
shmkmf
[ --help[=type] ]
[ --version ]
[ -v ]
[ -i ]
[ -p ]
[ -c string ]
[ -x ]
[ -r arg ]
[ -t top ]
[ -C dir ]
[ -I dir ]
[ config ]
[ makefile ]
BESCHREIBUNG
Das Kommando shmkmf generiert ein Makefile mithilfe der Shell.
Dabei steht die volle Funktionalität der Shell zur Formulierung
von Regeln zur Verfügung.
Folgende Optionen und Argumente werden vom Kommando shmkmf akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
-v
Zusätzliche Kommentare ins Makefile schreiben
-i
Lese Befehle aus der Standardeingabe
-p
Generierte Regeln zur Standardausgabe schreiben
-c string
Lese Befehle aus der Zeichenkette string.
-x
Keine zusätzlichen Regeln und Kommentare generieren
-r arg
Makefile in einem temprären Verzeichnis generieren und
make mit gegebenem Argument arg aufrufen.
-t top
Setzt TOP auf top, Vorgabe: .
-C dir
Suchpfad für Konfigurationsdateien um dir erweitern
-I dir
Suchpfad für Headerdateien um dir erweitern
Name der Konfigurationsdatei, Vorgabe: Config.make
Name des generierten Makefiles, Vorgabe: Makefile
shmkmf ohne Argumente aufgerufen. Im aktuellen
Verzeichnis wird nach der Konfigurationsdatei Config.make
gesucht und daraus die Datei Makefile generiert. Die Option -p
dient zu Testzwecken und erlaubt die Ausgabe der make-Regeln zum
Bildschirm, ohne dass ein Makefile generiert wird. Falls die
Konfigurationsdatei in einem anderen Verzeichnis steht, genügt die
Angabe des Verzeichnisses.
Die Konfigurationsdatei wird direkt von shmkmf eingebunden und kann
beliebige Anweisungen enthalten. Alle Ausgaben werden in das zu
generierende Makefile umgelenkt. Zur leichteren Formulierung der
Regeln sind eine Reihe von Hilfsfunktionen vordefiniert.
Der Name der Konfigurationsdatei und der Name des Makefiles können
über die nur lesbaren Variablen Config bzw.
Makefile abgerufen werden. Weiters wird die Variable
SRC auf den Namen des Verzeichnisses mit der
Konfigurationsdatei gesetzt. Der Aufrufname von shmkmf wird in
der Variablen shmkmf abgelegt.
Mithilfe der Zeile
test $shmkmf || exec shmkmf "$0" "$@"
kann die Konfigurationsdatei direkt aufgerufen werden.
Falls die Konfigurationsdatei von shmkmf eingebunden wurde, ist shmkmf
definiert und die Zeile hat keinen Effekt, ansonsten wird shmkmf mit dem
Skript als Argument aufgerufen. Optionen können auf diese Weise nicht
weitergereicht werden. Dafür sind die folgenden Aufrufe gleichwertig:
./cf [mf]
shcf [mf]
shmkmfcf [mf]
Die erste Form des Aufrufs setzt voraus, dass die Konfigurationsdatei cf Ausführbarkeitsrechte besitzt. Der Name mf des Makefiles kann optional angegeben werden.
Einbinden von Dateien
Mithilfe der Funktion include können Dateien eingebunden werden,
die entsprechend dem aktuellen Stand des Suchpfads IncludePath
gesucht werden. Für Dateien mit absoluten oder relativen Pfadnamen
wird der Suchpfad nicht verwendet.
Die so eingebundenen Dateien werden registriert und von
mf_bootstrap
zur Konstruktion einer Regel für das Makefile mf selbst verwendet.
Zusätzliche Argumente von include können in der Datei ausgewertet
werden. Diese Dateien werden im folgenden Headerdateien
genannt. In der Regel enthalten sie die Definitionen von Hilfsfunktionen
zur Generierung von Regeln. Falls eine Headerdatei nicht gefunden
wird, wird die Verarbeitung abgebrochen.
Eine Datei kann mithilfe der folgenden Zeilen gegen eine Mehrfacheinbindung geschützt werden:
test $foo&& return
foo=1
Dabei ist foo eine Hilfsvariable mit einem beliebigen, sonst nicht verwendeten Namen.
Für die Standardheader wird ein Dateiname der Form name.smh
verwendet. Die zugehörige Hilfsvariable zum Schutz gegen
Mehrfacheinbindung heißt name_smh.
Analog zu include können Konfigurationsdateien mit
der Funktion config entsprechend dem aktuellen Stand des
Suchpfads ConfigPath gesucht werden. Im Unterschied zu
include führt das fehlen einer Konfigurationsdatei nicht
zum Abbruch der Verarbeitung.
Eine weitere Variante zu include stellt die Funktion
xinclude dar. Die Headerdatei wird dabei von einer
eigenen Instanz von shmkmf überarbeitet und das Ergebnis in einer
Datei zwischengespeichert. Der Name der Zwischendatei wurd durch das
zweite Argument der Funktion festgelegt. Fehlt die Angabe, wird der
Basisname der Headerdatei (ohne Zusatz .smh) mit dem Zusatz .stat
verwendet.
Zusätzlich wird eine Erneuerungsregel für die Zwischendatei generiert.
Bei jedem Aufruf von make wird geprüft, ob sich der Inhalt der
Zwischendatei verändert hat und eine Aktualisiierung des Makefiles
notwendig ist.
Die Funktion xinclude wird typischerweise zum Einbinden
von Übersetzungsparametern verwendet, deren Setzung von der
Systemumgebung abhängt und sich verändern kann (Nachinstallation von
Programmbibliotheken, etc..).
Die Verwendung von xinclude alleine genügt nicht, damit der
Make-Prozess auf Veränderungen der Systemumgebung angepaßt wird.
Zusätzlich sind auch noch Abhängigkeiten für die von den
Übersetzungsparametern betroffenen Dateien von der Zwischendatei
einzutragen.
Basisregeln
Das Kommando shmkmf ergänzt die Regeln in der Konfigurationsdatei
um eine Reihe von Zeilen.
Aus der Konfiguartionsdatei mit der Kommentardefinition
mf_comm "Anwenderdefinitionen"
wird das Makefile
# Nicht editieren, Datei wurde mit
# /home/efeu/www/efeu-3.3-1/bin/shmkmf /var/tmp/tmp1301i/Config.make
# generiert.
CONFIG= /var/tmp/tmp1301i/Config.make
MAKEFILE= Makefile
# Anwenderdefinitionen
# Von shmkmf ergänzte Regeln:
all::
Makefile: /home/efeu/www/efeu-3.3-1/bin/shmkmf \
/home/efeu/www/efeu-3.3-1/lib/shmkmf/base.smh \
/home/efeu/www/efeu-3.3-1/lib/shmkmf/comment.smh \
/home/efeu/www/efeu-3.3-1/lib/shmkmf/dir.smh \
/home/efeu/www/efeu-3.3-1/lib/shmkmf/file.smh \
/home/efeu/www/efeu-3.3-1/lib/shmkmf/foreach.smh \
/home/efeu/www/efeu-3.3-1/lib/shmkmf/rule.smh \
/home/efeu/www/efeu-3.3-1/lib/shmkmf/srclist.smh \
/home/efeu/www/efeu-3.3-1/lib/shmkmf/update.smh \
/home/efeu/www/efeu-3.3-1/lib/shmkmf/var.smh \
/var/tmp/tmp1301i/Config.make
/home/efeu/www/efeu-3.3-1/bin/shmkmf /var/tmp/tmp1301i/Config.make
update::
/home/efeu/www/efeu-3.3-1/bin/shmkmf /var/tmp/tmp1301i/Config.make
install:: all
depend::
purge::
rm -f core
clean:: purge
uninstall::
Die Regel für das Makefile und das Pseudoziel update werden
dabei mit der Funktion mf_bootstrap generiert.
Die Liste der Dateien, von denen Makefile abhängt, wird intern
gespeichert und kann mit der Funktion add_depend erweitert werden.
Der Aufruf von shmkmf steht in der nur lesbaren Variablen
bootstrap.
Die Zusatzzeilen können mit der Option -x unterdrückt werden.
Schreiben von Regeln
Es gibt mehrere Möglichkeiten, Ausgaben für das Makefile zu erzeugen.
Zunächst können die Regeln direkt mit echo oder
printf generiert werden.
Für echo gibt es leider unterschiedliche Implementationen,
was die Handhabung von maskierten Zeichen wie \t für Tabulator,
\n für Zeilenvorschübe und \c zur Unterdrückung des
Zeilenvorschubs am Ende der Zeile betrifft.
Daher lautet die X/Open Empfehlung generell printf anstelle von
echo zu verwendet.
So wird mit der Befehlszeile
printf '%s: %s\n\t$(CC) -o $@ %s\n' foo foo.c foo.c
die folgende Kompilierungsregel
foo: foo.c
$(CC) -o $@ foo.c
erzeugt.
Weiters können
make-Regeln direkt in die Konfigurationsdatei
eingebettet werden. Dazu wird cat und die Syntax von
»
here-documenten«
verwendet.
Die folgenden Zeilen liefern die gleiche Ausgabe wie die printf
Anweisung.
cat << EOF
foo: foo.c
\$(CC) -o \$@ foo.c
EOF
Beachte, dass für das »here-document« (Text zwischen EOF) eine
Variablensubstitution erfolgt und daher der Dollar gequotet werden muss.
Anstelle von EOF kann ein beliebiges Kennwort stehen. Wird das
Kennwort unter Anführung gestellt, erfolgt keine Variablensubstitution
durch die Shell und der Dollar muß nicht mehr gequoted werden.
Die bevorzugte Weise zur Erzeugung von Generierungsregeln ist jedoch der Einsatz von vordefinierten Hilfsfunktionen. Obige Regel kann auch mit
mf_rule foo foo.c '$(CC) -o $@ foo.c'
generiert werden. So formulierte Regeln erhöhen die Lesbarkeit der Konfigurationsdatei.
Die hier vorgestellte Funktion erlaubt die Ausgabe zusätzlicher Regeln
für die Pseudoziele all und clean.
So wird unter Verwendung des Flags -a mit
mf_rule -a foo foo.c '$(CC) -o $@ foo.c'
die Ausgabe
all:: foo
clean::
rm -f foo
foo: foo.c
$(CC) -o $@ foo.c
generiert.
Die Namen der Pseudoziele können durch setzen der Variablen
AllTarget und CleanTarget modifiziert werden.
Die allgemeine Syntax von mf_rule ist
mf_rule [-a] tg dep cmd(s)
wobei jedes Kommando der Regel in eine eigene Zeile geschrieben wird. Die Ausgabe hat die Form:
tg: dep
cmdNeben
...
mf_rule bilden mf_comm und mf_var die elementaren
Funktionen zur Regelkonstruktion.
Die Funktion mf_comm generiert für jedes Argument arg eine
Kommentarzeile der Form:
# arg
Die Funktion mf_var generiert eine Variablendefinition für make.
Als Argument wird der Name name der Variablen und der
Zuweisungswert def übergeben. Variablen in make werden manchmal
auch Makros genannt. Sie dürfen nicht mit Variablen der Shell
verwechselt werden.
Die generierten Zeilen haben die Form:
name= def
Falls def mit mehr als einem Argument übergeben wird, wird die Variablendefinition in mehrere Zeilen aufgespalten.
Beispiel:
mf_var foo bar mf_var OBJ foo.o bar.o
erzeugt die Ausgabe
foo= bar
OBJ= foo.o \
bar.o
Abschließend sei noch erwähnt, dass zur Regelkonstruktion beliebige externe Kommandos eingesetzt werden können.
Ermitteln von Abhängigkeiten
Für eine Reihe von Aufgaben besteht die Möglichkeit, die
Abhängigkeiten automatisch zu ermitteln. So kann aus der
Analyse der Preprozessor-Ausgabe des C-Kompilers die Liste
aller eingebundenen Dateien ermittelt werden. In der Regel
überläßt man make selbst die Zusammenstellung der Abhängigkeiten
mithilfe des Pseudoziels depend. Ein Aufruf von make depend
ergänzt das Makefile mit den entsprechenden Abhängigkeitsdefinitionen.
Die Funktion mf_depend richtet solche Abhängigkeitsregeln ein, wobei
make depend automatisch nach Erstellung des Makefiles aufgerufen
wird.
Die allgemeine Syntax von mf_depend ist
mf_depend [-d dep] cmd(s)
Verschieben von Kommandos
Die Funktion postpone sorgt für eine spätere Ausführung
eines Kommandos nach Abarbeitung aller nachfolgenden Befehle. Die
Argumente werden beim Aufruf von postpone expandiert und dürfen
keine einfachen Anführungszeichen enthalten.
Der zuletzt verschobene Befehl wird als erstes ausgeführt.
Die Verschiebung von Kommandos kann geschachtelt werden.
Die folgenden Zeilen
mf_comm Anfang postpone mf_comm "1. Aufschub" mf_comm "Mitte 1" postpone postpone mf_comm "2. Aufschub (doppelt)" mf_comm "Mitte 2" postpone mf_comm "3. Aufschub" mf_comm Ende
erzeugen die Ausgabe
# Anfang # Mitte 1 # Mitte 2 # Ende # 3. Aufschub # 1. Aufschub # 2. Aufschub (doppelt)
Zum Aufschieben werden die Kommandos zunächst in die Datei
shmkmf_post geschrieben. Nach der Abarbeitung der Eingabe
werden die einzelnen Zeilen der Datei in der Reihenfolge umgedreht
und anschließend abgearbeitet.
Anstelle der Verwendung von postpone können Zeilen direkt an
die Datei shmkmf_post angehängt werden. Diese Möglichkeit sollte jedoch
nur in Hilfsfunktionen, nicht aber für normale Anweisungen in der
Konfigurationsdatei verwendet werden.
Temporäre Dateien
Das Kommando shmkmf richtet ein temporäres Verzeichnis ein, dass am Ende
der Verarbeitung automatisch gelöscht wird.
Dieses Verzeichnis kann für Zwischendateien verwendet werden.
Sein Name steht in der nur lesbaren Variablen TMP.
Dabei sollten folgende Regeln beachtet werden:
shmkmf oder dem Basisnamen
einer eingebundenen Headerdatei beginnen, sind reserviert.
Interne Hilfsfunktionen und Variablen
Interne Hilfsfunktionen und Variablen werden in der Regel nicht in
Konfigurationsdateien verwendet. Sie erleichtern jedoch die
Definition von Funktionen in eigenen »Header«-Dateien.
Die Funktion shmkmf_abort löscht das zu generiende
Makefile und bricht die Verarbeitung ab. Der aktuelle Stand des
Makefiles wird am Fehlerkanal ausgegeben. Sie wird intern von
Hilfsfunktionen im Fehlerfall verwendet.
Die Funktion shmkmf_warg wird von Hilfsfunktionen im Fall
des Aufrufs mit der falschen Zahl an Argumente verwendet.
Die Funktion shmkmf_warg erwartet als Argument den Namen der Funktion.
Sie produziert eine entsprechende Fehlermeldung und bricht die
Verarbeitung mit shmkmf_abort ab.
Die Funktion shmkmf_invop wird von Hilfsfunktionen im Fall
des Aufrufs mit einer ungültigen Option verwendet.
Die Funktion shmkmf_invop erwartet als Argument den Namen der Funktion
und die unbekannte Optionskennung.
Sie produziert eine entsprechende Fehlermeldung und bricht die
Verarbeitung mit shmkmf_abort ab.
Die Funktion mf_bootstrap
erzeugt die Regeln zur Erneuerung des Makefiles aus der
Konfigurationsdatei. Sie wird im Normalfall automatisch als
Standardregel an ein Makefile angehängt (kann mit der Option
-x deaktiviert werden). Zur Definition der Regel wird
shmkmf_deplist mit den Abhängigkeiten und
shmkmf für den Aufruf von shmkmh mit den
übergebenen Parametern.
Die Variable shmkmf_id enthält den Aufrufnamen von shmkmf.
Sie wird bei der Ausgabe von Fehlermeldungen verwendet.
SIEHE AUCH
make(1) im Programmer''s Reference Manual.
ÜBERSICHT
shmkmf-cflags
[ --help[=type] ]
[ --version ]
[ -m[name] ]
[ -I[path] ]
[ -L[path] ]
[ -a ]
[ -o ]
[ -l lib ]
[ name ]
BESCHREIBUNG
Folgende Optionen und Argumente werden vom Kommando shmkmf-cflags akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
-m[name]
Makro name mit gefundenen Flags initialisieren.
-I[path]
Suchpfad für Kopfdateien, Vorgabe: /usr/include.
-L[path]
Suchpfad für Bibliotheken, Vorgabe: /lib:/usr/lib.
-a
Nächste Suche nur durchführen, wenn letzte Suche erfolgreich war.
-o
Nächste Suche nur durchführen, wenn letzte Suche fehlschlug.
-l lib
Suche nach der Bibliothek, die dem regulären
Ausdruck ^lib(lib)\.(a|so)$ entspricht. Liefer bei
Erfolg das entsprechende -l flag und falls die Bibliothek
nicht in einem der beiden Verzeichnisse /lib oder usr/lib
liegt, optional auch ein eintsprechendes -Ldir flag.
Suche nach dem Verzeichnis dir, welches die Kopfdatei name
enthält, wobei name Pfadteile enthalten kann (z.B: X11/X.h)
Falls dir verschieden von /usr/include ist, wird ein Kompileflag
der Form -Idir erzeugt.
COPYRIGHT
Copyright (C) 2008 Erich Frühstück
ÜBERSICHT
shmkmf-config
[ --help[=type] ]
[ --version ]
[ -v ]
[ -x ]
[ -s ]
[ -c name ]
[ -i hdr ]
[ -I hdr ]
[ -r hdr ]
[ -f flgs ]
cmd
[ arg(s) ]
BESCHREIBUNG
Das Kommando shmkmf-config dient zur Bestimmung von systemspezifischen Parametern.
Normalerweise wird damit eine Schablone für ein C-Headerfile
mit speziellen Testanweisungen überarbeitet.
Diese Anweisungen werden mit awk isoliert und von shmkmf-config verarbeitet.
Manche Tests generieren C-Sourcen und überprüfen den Kompilierungsstatus.
Falls die -x Option gesetzt ist, wird das generierte Programm auch
ausgeführt und seine Ausgabe eingearbeitet.
Die folgenden Optionen und Argumente werden vom Kommando shmkmf-config akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
-v
Fehlermeldungen ausgeben
-x
Kompiliertes Programm ausführen
-s
Funktionsrumpf von der Standardeingabe lesen
-c name
C-Kompiler zum Testen
-i hdr
Headerfile einbinden
-I hdr
Headerfile, falls existiert, einbinden
-r hdr
Headerfile für shmkmf einbinden
-f flgs
Flags für C-Kompiler
Auszuführendes Kommando
Befehlsspezifische Argumente
shmkmf-config. Fals es file
oder update ist, wird eine Schablonendatei verarbeitet, ansonsten wird
ein spezieller Test durchgeführt.
In der Schablonendatei wird jedes Vorkommen von @SRC@ durch den
Namen der Schablonendatei und @CMD@ durch shmkmf-config ersetzt. Die folgenden
Schlüsselwörter am Anfang der Datei werden akzeptiert:
@set flags
Setzt Optionen für die nachfolgenden Aufrufe von shmkmf-config.
@add flags
Erweitert die Optionen für die nachfolgenden Aufrufe von shmkmf-config.
@include file
Falls die Headerdatei file existiert, wird eine
include-Direktive generiert und die Optionen für
die nachfolgenden Aufrufe von shmkmf-config erweitert, um sie einzubinden.
@eval args
Ruft shmkmf-config mit den angegebenen Argumenten args auf.
@cflags args
Ruft shmkmf-cflags mit den angegebenen Argumenten args auf.
@beg args@end
RuftDie folgenden Kommandos werden vom Programmshmkmf-configmit Option-sund den angegebenen Argumenten auf und leitet alle Zeilen zwischen@begund@endanshmkmf-configweiter.
shmkmf-config ausgeführt:
file [name]
Fügt in Datei name systemspezifische Parameter ein
update src tg
Fügt in die Datei src systemspezifische Parameter ein und erneuert tg, falls sich das Ergebniss von ihr unterscheidet oder src neueres Datum hat als tg.
check expr
Testet Kompilierung/Ausführung von expr ohne zusätzliche Ausgabe.
report expr
Meldet den Status der Kompilierung/Ausführung von expr.
error message expr
Generiert #error Directive mit message, falls die
Kompilierung/Ausführung von expr fehlschlägt.
success tname expr
Falls die Kompilierung/Ausführung von expr erfolgreich ist, wird der Makro tname mit 1, ansonsten mit 0 definiert.
failure tname expr
Falls die Kompilierung/Ausführung von expr fehlschlägt, wird der Makro tname mit 1, ansonsten mit 0 definiert.
include name
Bindet header name ein, falls verfügbar.
proto proto
Testet die Kompatiblität des Prototypes proto.
typedef type decl
Falls der Type type nicht deklariert ist, wird er mit decl type definiert.
SIEHE AUCH
shmkmf(1), shmkmf-cflags(1).
COPYRIGHT
Copyright (C) 2002, 2008 Erich Frühstück
ÜBERSICHT
src2doc
[ --help[=type] ]
[ --version ]
[ --info[=entry] ]
[ --debug[=mode] ]
[ --verbose ]
[ -t ]
[ --ps ]
[ -c ]
[ -n name ]
[ -m mode ]
[ -s num ]
[ -i fmt ]
[ -g ]
[ -L lang ]
[ -l ]
[ -a ]
src
[ out ]
BESCHREIBUNG
Die folgenden Optionen und Argumente werden vom Kommando src2doc akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
--info[=entry]
listet verfügbare Informationseinträge des Kommandos auf.
--debug[=mode]
setzt den Protokollmodus für das Kommando. Vergleiche dazu .
--verbose
setzt den Debug-Level auf .info.
-t
Terminalausgabe
--ps
PostScript-Aufbereitung
-c
Programmcode einbinden
-n name
Ausgabename
-m mode
Verarbeitungsmodus
-s num
Handbuchabschnitt
-i fmt
Format für Headerdateien
-g
Globale Einbindedateien
-L lang
Sprachumgebung
-l
Verarbeitungsmodi auflisten
-a
Aliastabelle ausgeben
Eingabefile
Ausgabefile
UMGEBUNGSVARIABLEN
APPLPATH
LANG
bestimmt die Sprache für Meldungen und Hilfetexte.
COPYRIGHT
Copyright (C) 2000 Erich Frühstück
ÜBERSICHT
tex2ps
[ --help[=type] ]
[ --version ]
[ -q ]
[ -n count ]
[ -r res ]
src
[ ps ]
BESCHREIBUNG
Folgende Optionen und Argumente werden vom Kommando tex2ps akzeptiert:
--help[=type]
generiert eine Beschreibung des Kommandos. Der zusätzliche Parameter type bestimmt die Formatierung und die Ausgabe der Beschreibung.
Terminalausgabe (default)
Rohformat für efeudoc
nroff/troff Sourcen für man
Ausgabe zum Drucker
--version
-q
Landscape
-n count
Zahl der Formatierungsläufe
-r res
Auflösung
Definitionsfile
Ausgabefile
COPYRIGHT
Copyright (C) 1993, 2001 Erich Frühstück
Gehe zum Dokumentanfang, Inhalt, Index