我需要使用另一个tcl脚本的选项运行tcl脚本

时间:2014-02-17 12:40:57

标签: tcl

我有一个tcl脚本drakon_gen.tcl。我正在运行它,从另一个脚本run.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个选项。我试过很多方法,但收到错误。添加选项的正确方法是什么?

1 个答案:

答案 0 :(得分:4)

将脚本导入tcl解释器时,您将在当前解释器的上下文中评估脚本文件。如果它被编写为独立程序,则可能会遇到全局命名空间中存在冲突的变量和过程的问题。避免这种情况的一种方法是调查奴隶口译员的使用(参见interp命令),为子脚本提供单独的环境。

在您的具体示例中,您似乎只需要提供一些命令行参数。这些通常由argv变量提供,该变量包含所有命令行参数的列表。如果在获取脚本之前定义此列表,则可以为其提供所需的命令行。例如:

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