home *** CD-ROM | disk | FTP | other *** search
-
- Okami Shell Version 1.5
-
-
- Okami Microshell
-
-
- Version 1.7
-
-
-
-
- von Wolfram Rösler ... Public Domain
-
- Zum Lieferumfang der Okami-Shell gehört eine Mini-Shell, deren Aufgabe
- es ist, die Hauptshell aufzurufen. Die Notwendigkeit dazu ergibt sich
- aus dem folgenden Dilemma:
-
- Damit von der Shell aus GEM-Programme gestartet werden können,
- muß die Shell vom Desktop aus als PRG gestartet werden.
-
- Die Shell lädt die Datei profile nur dann, wenn ihr als
- Parameter ein Minuszeichen übergeben wird (Login-Shell, wie in
- Unix).
-
- Beim Aufruf vom Desktop als PRG ist die Eingabe eines Parameters
- nicht vorgesehen
-
- Also kann man keine Login-Shell aufrufen, von der der Start von
- GEM-Programmen möglich ist.
-
- Zu diesem Zweck gibt es die Microshell, die, wenn sie als PRG aufgerufen
- wird und dann ihrerseits die Okami-Shell aufruft, den Start von
- GEM-Programmen ermöglicht.
-
- Die Microshell erfüllt allerdings nicht nur diesen Zweck, sondern sie
- ist ein Werkzeug zur Kontrolldatei-gesteuerten Ausführung mehrerer
- Programme mit jeweiligen Parametern. Dazu wird eine Datei angelegt, in
- der die Namen der aufzurufenden Programme und die zu übergebenden
- Parameter angeführt sind. Das macht die Microshell tatsächlich zu einer
- kleineren Version einer Shell, die zwar nicht interaktiv arbeitet, aber
- trotzdem in der Lage ist, z.B. einen Compiler oder Linker aufzurufen und
- das Ergebnis anschließend zu starten.
- Die Microshell ist also ein vollwertiger Batch-Prozessor, der seine
- eigenen Shellscripts hat und für die vielfältigsten Aufgaben eingesetzt
- werden kann (natürlich auch vollkommen unabhängig von dem restlichen
- Okami-System).
-
- Die Batch- oder Kontrolldateien, die von der Microshell benutzt werden,
- werden als MSH-Scripts bezeichnet.
-
-
- Die Microshell befindet sich in der Datei msh.prg. Der Quellcode der
- Microshell gehört zum Lieferumfang und befindet sich in der Datei msh.c.
-
-
-
- AUFRUF DER MICROSHELL
-
- Nach dem Start der Microshell als MSH.PRG wird als MSH-Script die Datei
- msh.inf im aktuellen Directoy benutzt.
- Wenn die Microshell als MSH.TTP oder von der Okami-Shell aus aufgerufen
- wird, ist die Eingabe einer Kommandozeile möglich, die folgender Syntax
- folgt:
-
- { Dateiname } [-c { Kommandos }]
-
- Die angegebenen Dateien werden als MSH-Scripts ausgeführt. Wenn nach -c
- Kommandos angegeben sind, werden diese direkt ausgeführt. Dies können
- die Namen von zu startenden Programmen, aber auch interne Kommandos der
- Microshell sein.
- ACHTUNG: Jeder Parameter stellt dabei ein vollständiges Kommando dar.
- Bei dem Aufruf
-
- msh -c echo hallo
-
- werden zwei Kommandos, nämlich "echo" und "hallo", übergeben. Um das
- Kommando "echo hallo" ausführen zu lassen, muß der Aufruf so aussehen:
-
- msh -c "echo hallo"
-
-
-
- KOMMANDOS
-
- Die einzelnen Zeilen eines Scripts haben folgende Bedeutung:
-
- 1) Führende und endende Whitespace-Zeichen (Leerzeichen, Tabs, Newlines
- etc.) werden ignoriert.
- 2) Leerzeilen und Zeilen, die mit einem '#' (Doppelkreuz) beginnen,
- gelten als Kommentarzeilen.
- 3) Alle Zeilen, die keine Kommentarzeilen sind, können als letztes
- Zeichen einen Backslash (\) erhalten, dann wird die darauf folgende
- Zeile an diese Zeile angehängt.
- 4) Wenn eine Zeile nur aus einem Pluszeichen besteht, wird der
- Kommentarmodus eingeschaltet. Im Kommentarmodus wird der Name und die
- Parameter jedes aufgerufenen Programmes auf dem Bildschirm ausgegeben.
- (Gilt nicht für interne Kommandos.) Nach dem Start der Microshell ist
- der Kommentarmodus eingeschaltet.
- 5) Wenn eine Zeile nur aus einem Minuszeichen besteht, wird der Kom-
- mentarmodus abgeschaltet.
- 6) Allen anderen Zeilen werden in der Form
-
- Kommando Parameter
-
- interpretiert. Das Kommando ist dabei entweder der Name eines internen
- Kommandos oder der Dateiname eines auszuführenden Programms.
-
- Folgende interne Kommandos sind vorhanden:
-
-
- cd
-
- ändert das aktuelle Directory. `Parameter' darf ein Laufwerk
- enthalten, z.B. "cd c:bin".
-
-
- exit
-
- das augenblickliche MSH-Script wird beendet.
-
-
- echo
-
- gibt den String `Parameter' auf dem Bildschirm aus. Der String
- darf Steuersequenzen enthalten, siehe unten.
-
-
- incl
-
- führt die als Parameter angegebene Datei als MSH- Script aus.
- Die maximale Schachtelungstiefe von incl-anweisungen ist nur
- durch den verfügbaren Speicher und die Maximalanzahl
- gleichzeitig offener Dateien begrenzt.
-
-
- ver
-
- gibt die Versionsnummer der Microshell und den
- Kompilierungszeitpunkt aus.
-
-
- exec
-
- startet ein Programm anstelle des msh-Prozesses. Siehe unten.
-
-
- wait
-
- wartet auf Tastendruck oder Datum/Uhrzeit. Siehe unten.
-
-
- Bei allen anderen Kommandos wird die als Kommando angegebene Datei
- ausgeführt, wobei der als Parameter angegebene String als Kommandozeile
- übergeben wird.
- Es empfiehlt sich, den vollen Dateinamen anzugeben (was aber nicht immer
- unbedingt notwendig ist.)
-
-
- STEUERSEQUENZEN DES ECHO-KOMMANDOS
-
-
- \n Newline
- \t Tabulator
- \b Backspace
- \\ Backslash
- \^ Zirkumflex
- \c (am Stringende) verhindert Zeilenvorschub
- ^x erzeugt das Zeichen mit Ascii-Code x-'A'+1. Hierbei ist
- x ein beliebiges Zeichen.
- Beispiele:
- echo Das ist eine Zeile \n und das ist die nächste.
- echo Das ist eine Zeile \c
- echo und das ist dieselbe.
- echo Der folgende Text: ^[p ist invers durch eine \c
- echo VT52-Steuersequenz. ^[q
- echo Man kann Backslashes: \\ und Zirkumflexe: \^ ausgeben.
- echo Ebenso kann man klingeln: ^G
-
-
-
- DAS EXEC-KOMMANDO
-
- Das interne Kommando exec wird folgendermaßen aufgerufen:
-
- exec Programm {Parameter}
-
- Das angegebene Programm wird mit den angegebenen Parametern gestartet,
- anschließend wird die Microshell beendet. Wenn MiNT installiert ist,
- wird das Programm anstelle des msh-Prozesses gestartet (d.h. der
- msh-Prozeß wird von dem Programm überlagert), so daß die msh, während
- das Programm läuft, keinen Speicherplatz belegt.
- Das bedeutet, daß alles, was in einem msh-Script nach einem
- exec-Kommando steht, nicht mehr beachtet werden kann.
-
-
- DAS WAIT-KOMMANDO
-
- Das interne Kommando wait kann auf zwei Arten aufgerufen werden.
-
- wait key
-
- In dieser Form wartet msh auf einen Tastendruck. Bei Druck auf ESC wird
- das aktuelle Script beendet, bei jeder anderen Taste wird es
- fortgesetzt.
-
- wait ttmmjj HHMMSS [Text ]
-
- In dieser Form wartet msh bis zu einem angegeben Datum und Uhrzeit.
- Wenn anstelle von ttmmjj ein Stern (*) steht, wartet msh nur bis zu der
- angegebenen Uhrzeit. Wenn der Protokollmodus aktiv ist, gibt msh
- folgende Zeile aus:
-
- Waiting for Text... press ESC to abort
-
- Als Text steht hier der entsprechende Parameter von wait. Wenn kein
- Text angegeben ist, entfällt die Ausgabe von "for Text".
- Achtung: ttmmjj und HHMMSS müssen immer in dieser Form geschrieben
- werden, d.h. durch genau ein Leerzeichen getrennt; alle Zahlen müssen
- zweistellig angegeben sein. msh testet nicht auf Plausibilität; "wait
- 999999 999999" wartet endlos. (Ist halt eben eine "Micro"-Shell.)
-
- Die Microshell macht keinen Gebrauch von evtl. definierten
- Environment-Variablen, gibt diese aber an alle gestarteten Programme
- unverändert weiter.
-
-
- BEISPIELE
-
- Beispiel 1: das MSH-Script zum Start der Okami-Shell
-
- # Microshell Kontrolldatei für Okami-Shell
- -
- echo Aufruf der Okami-Shell
- exec sh.ttp -
-
- Es wird die Okami-Shell als Login-Shell (mit dem Parameter "-")
- aufgerufen. Vor dem Aufruf der Shell wird die Meldung "Aufruf der
- Okami-Shell" auf den Bildschirm geschrieben.
- Wenn MiNT installiert ist, wird die Microshell von sh.ttp überlagert.
-
- Beispiel 2: ein komplizierteres Script
-
- # Demo-Script für die Microshell
- -
- ver
- echo Das ist ein MSH-Script
-
-
- echo Aufruf des Compilers
- d:\compiler\cc.ttp e:\source\test1.c e:\source\test2.c \
- e:source\test3.c -o e:\bin\test.tos
-
-
- # Ausführen eines anderen Scripts
- incl e:\bin\mshdemo.msh
-
-
- # Aufruf der Okami-Shell
- echo Plattenbelegung von Laufwerk E:
- e:\bin\sh.ttp df E: ; echo ENTER: ; read
-
- Neben Kommentaren und Ausgabeanweisungen (echo) wird der Compiler (in
- der Datei d:\compiler\cc.ttp) mit einer über zwei Zeilen gehenden
- Parameterliste aufgerufen. Danach wird eine weiteres Script
- (e:\bin\mshdemo.msh) ausgeführt und durch Aufruf der Okami-Shell die
- Belegung von Partition E: ausgegeben und auf einen Tastendruck gewar-
- tet.
-
- Beispiel 3: Starten eines Mailbox-Poll-Programms zu einer bestimmten
- Zeit
-
- wait * 023000 Poll time
- c:\bin\poll.ttp
- d:\okami\sh.ttp shutdown -rf
-
- Dieses MSH-Script wartet bis 2.30 Uhr und startet dann das Programm
- c:\bin\poll.ttp . Danach ruft es die Okami-Shell auf, um einen Reset
- durchzuführen. Das MSH-Script sollte also so installiert werden, daß es
- nach dem Systemstart sofort ausgeführt wird. Während der Wartezeit
- erscheint die Meldung "Waiting for Poll time... press ESC to abort".
- Wenn der Anwender währenddessen die ESC-Taste drückt, wird das Script
- abgebrochen.
-
-
- DIE MICROSHELL IM AUTOORDNER
-
- Die Microshell kann auch anstelle des Auto-Ordners benutzt werden. Dazu
- kopiert man sich alle Programme, die beim Systemstart geladen werden
- sollen, in einen eigenen Ordner, z.B. in den Ordner c:startup. In den
- eigentlichen Auto-Ordner kopiert man nur die Datei msh.prg. Unter dem
- Namen c:\msh.inf wird eine Datei angelegt, die die Namen der zu
- startenden Programme in der gewünschten Reihenfolge enthält. (Im
- einfachsten Fall erzeugt man diese Datei von der Okami-Shell aus mit dem
- Kommando:
-
- ls -nk c:\startup\*.prg >c:\msh.inf
-
- Dann ist die Wirkung dieselbe wie beim Aufruf aus dem Auto-Ordner.)
- Außerdem kann die inf-Datei Kommentare und echo-Zeilen erhalten.
- Natürlich ist von der Microshell aus auch der Aufruf von Programmen aus
- beliebigen anderen Ordnern möglich.
- WICHTIG: die Datei msh.inf muß bei dieser Verwendung im
- Wurzelverzeichnis von C: liegen und nicht im Auto-Ordner, da beim
- Systemstart das Wurzelverzeichnis das aktuelle Directory ist, auch bei
- der Ausführung der Programme im Auto-Ordner.
-