$ SHOW PROCESS / ALL
$ SHOW ENTRY
$ SHOW ENTRY / FULL
Wenn ich in OpenVMS einen Befehl dosomething habe, wo kann ich sehen, woher es kommt (Position von Skript / exe - wie wird es definiert, wenn es sich um eine andere Tierart handelt)
$ SHOW PROCESS / ALL
$ SHOW ENTRY
$ SHOW ENTRY / FULL
Es gibt drei DCL- "Quellen", von denen, wie Sie sagen, etwas Kommando "kommt".
Eine Warnung: Syntaxen mit sichtbarer expliziter DCL-Durchsetzung, wie:
$'dosomething'
werden hier nicht gezählt, nur die "visible like command".
Auch explizite RUN- oder MCR-Befehle sind selbst Befehle, die dann run dosomething
nicht von Interesse sind.
Symbole
Funktion: Wie Alias * oder "Programm mit Parametern ausführen", fast wie beim MCR-Dosomething.
Mach ein:
$ show symbol dosomething
Symbole sind "Erstbenutzung" (wenn verwendet, hat dann Priorität vor den nächsten Schritten)
Echter DCL-Befehl
Es gibt kein integriertes Dienstprogramm zum Überprüfen der Befehlstabelle.
Sie können jedoch ein Freeware-VERB-Dienstprogramm einrichten.
Dann mache ein:
$ verb dosomething
"Image" und "cliroutine" (in der VERB-Ausgabe) zeigen die EXE- oder interne DCL-Routine, in der der Befehl ausgeführt wird.
Pfadnutzung
Mach ein:
$ directory DCL$PATCH:dosomething
Wenn eine .COM- oder .EXE-Datei vorhanden ist, wird die Befehlsprozedur fast wie after ausgeführt @DCL$PATH:dosomething
oder ein Image des Codes wird wie ausgeführt mcr DCL$PATH:dosomething
.
Pfadnutzung ist eine "letzte Chance" (nur wenn das Symbol nicht existiert oder nicht verwendet wird und der echte DCL-Befehl auch nicht vorhanden ist)
"Fast" in der obigen Beschreibung, da es geringfügige Unterschiede bei der Syntaxinterpretation gibt, die meistens irrelevant sind.
Wenn ein Symbol existiert, dessen Name mit Ihrem "Befehl" übereinstimmt, kann der Inhalt des Symbols auf zwei Arten übersetzt werden:
Wenn der Inhalt mit "$" beginnt, heißt die Verwendung "Fremdbefehl" und führt ein Image (EXE-Datei) des restlichen Inhalts bis zum Trennzeichen aus (Parameter können fast wie in einem Alias angewendet werden). Warnung: Das Standardverzeichnis der angegebenen .EXE-Datei lautet SYS $ SYSTEM:, nicht das Standardverzeichnis von process!
In allen anderen Fällen funktioniert der Wert möglicherweise als un * x-Alias.
Der Wert des Symbols wird in die Befehlszeile "eingefügt", und der ersetzte Text wird als ("neuer") Befehl interpretiert.
Das Wort "kann" bezieht sich auf die SET SYMBOL-Einstellung (HILFE SET SYMBOL für VERB-Beschreibung).
Beachten Sie, dass der Alias weiter zu einer anderen echten dcl-Syntax erklärt wird (true-Befehl, explizite "@" für Prozeduren oder "unsichtbare" DCL $ PATH-Verwendung), jedoch nicht für das nächste Symbol (Alias oder Fremdbefehl).
Es wird dringend davon abgeraten, einen echten DCL-Befehl durch Aliase zu ersetzen.
Der Befehl true wird mit dem Befehl SET COMMAND gesetzt (naheliegend), die Namen der ausführbaren Dateien (EXE-Image oder interne DCL-Routine) stehen nicht in anderer Weise mit dem Befehlsnamen in Verbindung, auch wenn der Befehl meist ausreichend ist (der Befehl DIRECTORY führt ein SYS aus $ SYSTEM: DIRECTORY.EXE usw., aber APPEND führt COPY.EXE aus und HELP führt VMSHELP.EXE usw. aus.
Pfad wird wie in un * x verwendet, aber:
Ich glaube nicht, dass es in OpenVMS genau so funktioniert, und es gibt keinen narrensicheren Weg. Für die DCL-Show würden die meisten Qualifikationsmerkmale in SYS $ SYSTEM: SHOW.EXE enden, aber ohne die MAP-Datei gibt es keine Möglichkeit herauszufinden, welches Quellmodul tatsächlich in diese ausführbare Datei aufgenommen wurde. DCL ist nicht wie Bash, wo es einen anderen Prozess als Fork-Exec ausführt und das Image dieses Befehls lädt.