2014-02-17 66 views
1

我有一個tcl腳本drakon_gen.tcl。我運行它,從另一個腳本run.tcl這樣的:我需要使用另一個tcl腳本的選項運行tcl腳本

source "d:\\del 3\\drakon_editor1.22\\drakon_gen.tcl" 

當我運行run.tcl我有以下的輸出:

This utility generates code from a .drn file. 
Usage: tclsh8.5 drakon_gen.tcl <options> 
Options: 
-in <filename>   The input filename. 
-out <dir>    The output directory. Optional. 

現在我需要添加到run.tcl選項是在輸出中。我嘗試了很多方法,但我收到錯誤。什麼是添加選項的正確方法?

回答

4

當您將腳本輸入到tcl解釋器中時,您正在當前解釋器的上下文中評估腳本文件。如果它被編寫爲獨立程序,那麼您可能會遇到全局名稱空間中存在衝突的變量和過程的問題。避免這種情況的一種方法是調查使用從屬解釋器(請參閱interp命令)爲子腳本提供單獨的環境。

在您的具體示例中,它看起來像只需要提供一些命令行參數。這些通常由argv變量提供,其中包含所有命令行參數的列表。如果您在採購腳本之前定義此列表,則可以將其提供給必需的命令行。例如:

set original_argv $argv 
set argv [list "--optionname" "value"] 
source $additional_script_filename 
set argv $original_argv 
+0

您可能還需要設置'argc'和'argv0'全局變量,儘管它們更少使用。 –