【问题标题】:I need to run tcl script with options from another tcl script我需要使用另一个 tcl 脚本中的选项运行 tcl 脚本
【发布时间】:2014-02-17 22:26:16
【问题描述】:

我有一个 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 选项。我尝试了很多方法,但我收到错误。添加选项的正确方法是什么?

【问题讨论】:

    标签: tcl


    【解决方案1】:

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

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

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

    【讨论】:

    • 您可能还需要设置 argcargv0 全局变量,尽管它们很少使用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-05
    • 1970-01-01
    • 1970-01-01
    • 2017-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多