Benutzer-Werkzeuge

Webseiten-Werkzeuge


computer:openvms:dcl:aufbau_von_kommandos

Mithilfe DCL-Kommandos lassen sich sogar komplexe Befehlssequenzen „zerlegen“ und in sehr kompakter Schreibweise zusammenfassen.

Format

Ein DCL-Kommando besteht in aller Regel aus:

  • Verb - „Was soll gemacht werden?“ / Kommandoname
  • Qualifizierer - „Wie soll es gemacht werden?“ / Optionen
  • Parameter - „Womit soll es gemacht werden?“ / Datei bzw. Objekt
  • Schlagwörter - zusätzliche Informationen und Optionen

Ein Beispiel:

$ PRINT MYFILE.TXT/COPIES=3

Der Befehl druckt die Datei MYFILE.TXT auf dem Standarddrucker 3x aus.

  • PRINT = Verb
  • MYFILE.TXT = Parameter
  • /COPIES=3 = Qualifizierer

Verb/Kommando

Unvollständige Kommandos werden in der Regel interaktiv um ihre zwingend benötigten Parameter ergänzt - die beiden folgenden führen zum gleichen Ergebnis:

$ RENAME MYFILE1.TXT MYFILE2.TXT

$ RENAME
_From: MYFILE1.TXT
_To: MYFILE2.TXT

Wichtig ist, dass lediglich die zwingend notwendigen Parameter abgefragt werden - eventuelle optionale Parameter und Qualifizierer gehen verloren.

Überlange Kommandos können auch über mehrere Zeilen hinweg geschrieben werden. Die beiden folgenden Befehle bewirken exakt das gleiche:

$ PRINT MYFILE1.TXT/COPIES=1/QUEUE=OFFICEA,MYFILE2.TXT/COPIES=2/QUEUE=OFFICEB,MYFILE3.TXT/COPIES=3/QUEUE=OFFICEC

$ PRINT -
_$ MYFILE1.TXT/COPIES=1/QUEUE=OFFICEA, -
_$ MYFILE2.TXT/COPIES=2/QUEUE=OFFICEB, -
_$ MYFILE3.TXT/COPIES=3/QUEUE=OFFICEC

Das hinten angefügte Minus-Zeichen erklärt der Shell, dass das Kommando noch nicht komplett ist. Hierdurch ändert sich auch der Prompt in _$.

Qualifizierer

Qualifizierer können entweder für einen Parameter oder für einen kompletten DCL-Aufruf definiert werden, ein Beispiel:

$ PRINT MYFILE1.TXT/COPIES=3 MYFILE2.TXT/COPIES=3 MYFILE3.TXT/COPIES=3

Dieser Aufruf würde die Dateien MYFILE1.TXT, MYFILE2.TXT und MYFILE3.TXT jeweils 3x auf dem Standarddrucker ausdrucken. Man könnte das Ganze auch zusammenfassen und folgenden Befehl ausführen:

$ PRINT/COPIES=3 MYFILE1.TXT,MYFILE2.TXT,MYFILE3.TXT

Parameter können natürlich für jede Definition einen anderen Wert haben - beispielsweise:

$ PRINT MYFILE1.TXT/COPIES=1 MYFILE2.TXT/COPIES=2 MYFILE3.TXT/COPIES=3

Dieser Aufruf würde die Datei MYFILE1.TXT 1x, die Datei MYFILE2.TXT 2x und die Datei MYFILE3.TXT 3x ausdrucken.

Mehrfachdefinitionen sind auch möglich - der folgende Aufruf würde die Dateien prinzipiell 3x ausdrucken; mit Ausnahme von MYFILE3.TXT die nur einmal ausgedruckt wird:

$ PRINT/COPIES=3 MYFILE1.TXT,MYFILE2.TXT,MYFILE3.TXT/COPIES=1

Jeder Parameter erhält automatisch den Qualifizierer /COPIES=3, der letzte Parameter (in dem Fall eine Datei) MYFILE3.TXT erhält den Qualifizierer /COPIES=1.

Mehrere Qualifizierer werden einfach hintereinander geschrieben, es wird keine Trennung durch Leerzeichen oder Komma vorgenommen - ein Beispiel ist:

$ PRINT/COPIES=3/QUEUE=OFFICEC MYFILE1.TXT,MYFILE2.TXT

Dieser Aufruf druckt die Dateien MYFILE1.TXT und MYFILE2.TXT jeweils 3x auf der Drucker-Warteschlange OFFICEC und nicht der definierten Standard-Warteschlange aus.

Parameter

Mehrere Parameter werden in der Regel durch Kommas (und nicht durch Leerzeichen wie in der UNIX-Welt) getrennt:

$ TYPE MYFILE1.TXT,MYFILE2.TXT,MYFILE3.TXT

Der Befehl gibt den Inhalt der Dateien MYFILE1.TXT, MYFILE2.TXT und MYFILE3.TXT aus.

Kommentare

Als Abtrenner zwischen Befehlsdefinitionen und Kommentaren dient unter DCL das Ausrufe zeichen. Alles was hinter einem nicht-maskierten Ausrufezeichen steht ist ein Kommentar - ein Beispiel:

$ SHOW USERS ! This command shows all currently logged in users

Insbesondere in Skripten sind Kommentare sehr hilfreich, um den Code zu erläutern.

computer/openvms/dcl/aufbau_von_kommandos.txt · Zuletzt geändert: 2012/05/17 20:43 von christian