Ich möchte den Inhalt eines Befehls sehen.Wie bekomme ich den Inhalt eines Befehls? TCL
Bitte schlagen Sie mir vor, wie Sie den Inhalt eines Befehls erhalten (der Code, der dem entsprechenden Befehl zugeordnet ist)?
blah::do_something
Ich möchte den Inhalt eines Befehls sehen.Wie bekomme ich den Inhalt eines Befehls? TCL
Bitte schlagen Sie mir vor, wie Sie den Inhalt eines Befehls erhalten (der Code, der dem entsprechenden Befehl zugeordnet ist)?
blah::do_something
können Sie info body
Befehl verwenden, um die Inhalte eines Verfahrens zu erhalten.
% proc add {a b} {
return [expr {$a+$b}]
}
% info body add
return [expr {$a+$b}]
%
Es gibt keine sinnvolle Stelle für einen allgemeinen Befehl. Zum Beispiel hat der Befehl lset
mehrere verschiedene Implementierungen über mehrere C-Funktionen; Es gibt die interpretierte Version sowie mehrere Versionen für die Verarbeitung von bytecode-kompilierten Versionen sowie die Funktion, die die Quelle zum Bytecode kompiliert. Viele Tcl-Befehle haben diese Art von interner Komplexität, aber sie verhalten sich immer gleich, welche Implementierungsstrategie auch immer verwendet wird. Darüber hinaus gibt es keinen Versuch, eine Map in den Bereich der Befehlsimplementierungen zu stellen, die aus Tcl-Code sichtbar ist. Sie müssen nur den Tcl-Quellcode nach der Version durchsuchen, an der Sie interessiert sind.
Die Prozeduren sind unterschiedlich, eine spezielle Unterklasse des Befehls; Da wir explizit halten Sie den Quellcode herum, so dass es mit info body
abgerufen werden kann.
Gott sei Dank !!! Du bist gekommen, um die Magie zu erklären ...;) – Dinesh
Ich sehe, dass dies nur für Verfahren funktioniert. Könnten Sie bitte einen anderen Weg vorschlagen? Ich möchte den Inhalt der Befehle sehen, die aufgelistet werden, wenn wir info procs verwenden –
Wir können nur extrahieren, wenn es über 'proc' geschrieben wird. Interne Befehle wie 'lindex' (oder was auch immer) wird nicht funktionieren, da sie in C entwickelt wurden, um einen bestimmten Zweck zu unterstützen. Dies hilft auch dabei, die hinter den Kulissen versteckten Sachen zu verstecken. Die HLT-API von STC ist ein solches Beispiel. – Dinesh
Danke für die Info, ich benutze ein Tool, das auf tcl aufgebaut ist. Ich sehe, dass es viele Befehle gibt, die nicht eingebaut sind. Also können wir das Zeug in diesem Fall? –