Das Schlüsselwort .KEY (oder .K) gibt Schlüsselwortnamen und -positionen in der Befehlszeile an. Es teilt EXECUTE mit, wie viele Parameter vorhanden sind und wie sie zu interpretieren sind. Pro Skript ist nur eine .KEY-Anweisung zulässig; wenn sie verwendet wird, sollte sie in der ersten Zeile der Datei stehen. Jedes Skript, das <$$> enthält, muß auch eine .KEY-Anweisung enthalten.
Die Argumente in der .KEY-Zeile können mit den Zusätzen /A und /K versehen werden, die die gleiche Funktion haben wie in einer AmigaDOS-Schablone. (Schablonen werden in Kapitel 6 beschrieben.) Argumente, auf die ein /A folgt, sind erforderlich, Argumente, auf die ein /K folgt, erfordern den Namen des betreffenden Arguments als Schlüsselwort. Verwenden Sie Kommas (keine Leerzeichen) als Trennzeichen zwischen mehreren Argumenten in der .KEY-Zeile.
Beispiel: Wenn ein Skript mit .KEY Dateiname/A beginnt, bedeutet dies, daß ein Dateiname in der EXECUTE-Befehlszeile nach dem Namen des Skripts angegeben werden muß. Dieser Dateiname wird in den folgenden Zeilen des Skripts substituiert. Beispiel: Wenn Ihr Skript "Neutext" heißt und die erste Zeile.
lautet, muß eine Dateinamenvariable angegeben werden. Die Variable TO ist wahlfrei, wenn sie aber angegeben wird, muß das Schlüsselwort TO verwendet werden. Folgendes wäre eine akzeptable Art des Aufrufs von "Neutext":
1> EXECUTE Neutext Textdatei TO NeuDatei
Vor der Ausführung durchsucht AmigaDOS das Skript nach Angaben zwischen den Zeichen .BRA und .KET (standardmäßig < und >). Solche angaben können aus einem Schlüsselwort bzw. einem Schlüsselwort und einem Standardwert bestehen. EXECUTE versucht, einen Parameter zu substituieren, wenn das Programm ein Schlüsselwort in spitzen Klammern findet. Wenn Sie allerdings eine Zeichenfolge in Ihrem Skript verwenden möchten, die spitze Klammern enthält, oder wenn Ihr Skript spitze Klammern zur Umleitung von Ein-/Ausgabe verwendet, müssen Sie Ersatzzeichen für die spitzen Klammern definieren; dazu dienen die Befehle .BRA und .KET. .BRA <z> ändert die öffnende Klammer in das in <z> angegebene Zeichen, .KET <z> nimmt die entsprechende Änderung der schließenden Klammer vor.
Beispiel: Das folgende Skript "Demo" verwendet folgende Zeilen:
.KEY Dateiname
ECHO "Dies gibt KEINE <spitzen> Klammern aus."
.BRA {
.KET }
ECHO "Diese Zeile GIBT <spitze> Klammern aus."
ECHO "Der angegebene Dateiname ist {Dateiname}."
Dies führt zu folgender Ausgabe:
Dies gibt KEINE Klammern aus.
Diese Zeile GIBT <spitze> Klammern aus.
Der angegebene Dateiname ist TestDatei.
Die erste ECHO-Anweisung läßt AmigaDOS nach einer Variable suchen, die für den Parameter <spitzen> zu substituieren ist. Da kein Argument mit Name "spitzen" in der EXECUTE-Befehlszeile angegeben wird, wird die Nullzeichenfolge substituiert. Die Befehle .BRA und .KET weisen das Skript an, zum Einschließen von Parametern keine spitzen, sondern geschweifte Klammern zu verwenden. Wenn die zweite ECHO-Anweisung ausgeführt wird, werden die spitzen Klammern - ohne ihre frühere Sonderbedeutung - als normaler Text ausgegeben. Die dritte ECHO-Anweisung zeigt, daß die geschweiften Klammern nun die Funktion der spitzen Klammern übernommen haben.
Zur Vermeidung von Konflikten bei der Umleitung sind die spitzen Klammern in <$$> mit den Befehlen .BRA und .KET neu zu definieren.
Wenn Sie ein Schlüsselwort zwischen spitze Klammern schreiben, können Sie auch eine Standardzeichenfolge angeben, die verwendet werden soll, wenn in der Befehlszeile keine Variable angegeben wird. Standardwerte können auf zwei Arten angegeben werden: bei jeder Bezugnahme auf einen Parameter oder unter Verwendung des Befehls .DEF (für Default = Standardwert).
Wenn Sie den Standardwert bei jeder Bezugnahme auf einen Parameter angeben, müssen Sie die zwei Zeichenfolgen durch ein Dollarzeichen ($) trennen.
Beispiel: In der folgenden Anweisung:
ECHO "<wort1$defwort1> ist der Standard für Wort1."
Ist "defwort1" der für "wort1" definierte Standardwert. Er wird ausgegeben, wenn für "wort1" keine andere Variable angegeben wird. Wenn Sie allerdings diesen Standardwert mehrmals in Ihrem Skript verwenden wollen, müssen Sie <wort1$defwort1> jedesmal wieder neu angeben.
Das Definieren eines Standardwerts mit dem Befehl .DEF ermöglicht die Angabe eines Standardwerts für jedes spezifische Schlüsselwort. Beispiel:
ordnet "defwort1" als Standardwert für den Parameter "wort1" für das gesamte Skript zu. Die folgende Anweisung:
ECHO "<wort1> ist der Standardwert für Wort1."
führt zur gleichen Ausgabe wie der vorherige Echobefehl:
defwort1 ist der Standardwert für Wort1.
Der Befehl .DOLLAR <z> ermöglicht das Ändern des Standardzeichens von $ zu <z>. (Sie können auch .DOL <z> angeben.) Beispiel:
.DOL #
ECHO "<wort1#defwort1> ist der Standardwert für "
ECHO "Wort1."
Sie können Kommentare in ein Skript einfügen, indem Sie sie hinter ein Semikolon (;) schreiben oder hinter einen Punkt (.), gefolgt von einem Leerzeichen. Leerzeilen werden innerhalb von Skripts akzeptiert und ignoriert.
|
Es wird empfohlen, Semikolons zur Eingabe von Kommentaren zu verwenden, um Fehler zu vermeiden, die durch das Weglassen des Leerzeichens nach dem Punkt beim anderen Verfahren entstehen könnten. |
AmigaDOS bietet eine Reihe von Blockbefehlen, die in Skripts verwendet werden können, wie z.B. IF, ELSE, SKIP, LAB und QUIT. Diese Befehle können ebenso wie der Befehl EXECUTE in einem Skript auch verschachtelt werden.
Zum Stoppen der Ausführung des aktuellen Skripts drücken Sie Ctrl-D. Wenn Sie Skript-Dateien verschachtelt haben, können Sie die gesamte Gruppe von EXECUTE-Befehlen mit Ctrl-C stoppen.
Angenommen, das Skript "Drucken" enthält folgende Angaben:
.KEY Dateiname
RUN COPY <Dateiname> TO PRT: +
ECHO "Drucken von <Dateiname> abgeschlossen"
reagiert so, als hätten Sie die folgenden Befehle übe die Tastatur eingegeben:
1> RUN COPY Test/Prg TO PRT: +
ECHO "Drucken von Test/Prg abgeschlossen"
Beachten Sie die Verwendung des Pluszeichens am Ende der ersten Zeile. Wenn Sie nach dem Pluszeichen die Eingabetaste drücken, führt der Befehl RUN auch den Befehl in der zweiten Zeile aus, sobald der erste Befehl abgeschlossen ist.
Ein weiteres Beispiel, Show, verwendet weitere der oben beschriebenen Funktionen:
.KEY name/A
IF EXISTS <name>
TYPE <name> NUMBER ;wenn Datei in angegebenem
;Verzeichnis steht,
;mit Zeilenzahlen anzeigen
ELSE
ECHO "<name> steht nicht in diesem Verzeichnis"
ENDIF
zeigt die Datei Work/Docdatei an, und zwar mit Zeilennummern, wenn "Show" im aktuellen Verzeichnis existiert. Wenn die Datei nicht dort vorhanden ist, wird eine Fehlermeldung am Bildschirm ausgegeben. Die Option /A erfordert die Angabe eines Dateinamens in der Befehlszeile nach "Show"; andernfalls kommt es zu einem Fehler.