Hängt davon ab, was du wirklich meinst.
Eine Möglichkeit besteht darin, ein drittes Skript ("Master") zu schreiben, das
machen würde %Vor% Eine andere Möglichkeit besteht darin, den zweiten Aufruf von source
aus dem obigen Beispiel an den unteren Rand des ersten Skripts hinzuzufügen.
Ergänzung zum ersten Ansatz: Wenn sich die auszuführenden Skripte im selben Verzeichnis wie das Master-Skript befinden, ist idiomatisch zu source
das
Auf diese Weise funktioniert das Sourcing unabhängig vom aktuellen Prozessverzeichnis und vom Speicherort des Projektverzeichnisses.
Sie müssen nur die Quelle verwenden, um das zweite Skript auszuführen.
%Vor%Obwohl dies im Allgemeinen eine korrekte Antwort ist, da die Frage nicht präzise formuliert wurde, gibt es Tonnen von Möglichkeiten, das Ziel zu erreichen, tcl-Code von innerhalb von tcl auszuführen. Ich möchte im Detail darauf eingehen, denn das Verständnis der Ausführung von Code ist ein wesentlicher Punkt, um Tcl zu verstehen.
Der Source-Befehl sollte nicht mit der klassischen Ausführung von Skripten verwechselt werden, was der Thread-Starter meiner Meinung nach verlangt hat.
Der Quellbefehl ist wie der "include" -Befehl in c / perl / php. Sprachen wie Java oder Python haben dagegen nur "Import" -Mechanismen.
Der Unterschied besteht darin, dass diese Sprachen eine interne Datenbank mit verfügbaren Paketen erstellen, die mit den entsprechenden Quell- / Binär- / Bytecode-Dateien verknüpft sind. Durch das Schreiben einer Import-Anweisung werden verknüpfte Quell- oder Bytecode- oder Binärdateien geladen. Dies ermöglicht ein detaillierteres Abhängigkeitsmanagement, ohne zusätzlichen Code zu schreiben. In tcl kann dies mit Namespaces und dem Befehl package required erreicht werden. Beispiel:
Angenommen, Sie haben diese Quelle.tcl:
%Vor%Nun haben Sie Ihr "Master" -Skript, wie Sie es nennen. Ich nenne es "Haupt". Es hat den Inhalt:
%Vor%Wenn Sie mit zusätzlichen Kosten rechnen können, indem Sie eine komplett neue Interpreter-Instanz starten, können Sie auch Folgendes tun:
%Vor%Eval kann eine Zeichenkette oder eine Liste (in tcl ist alles eine Zeichenkette) wie ein programmierter Code auswerten. Sie müssten die vollständige Quelldatei in eine Zeichenfolge laden. Und dann benutze Eval, um den Code in einem separaten Bereich auszuwerten, um Inhalte in deiner Hauptquelldatei nicht zu überschreiben.
%Vor%Tags und Links tcl