Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在TCL中的命令行中传递参数_Tcl - Fatal编程技术网

在TCL中的命令行中传递参数

在TCL中的命令行中传递参数,tcl,Tcl,从: 要运行控制台脚本,请调用tclsh.exe程序,将脚本文件的路径传递给它。命令行上的任何附加参数都将作为列表传递给argv全局变量中的脚本 # File printargs.tcl foreach arg $::argv {puts $arg} 我们可以从命令行调用此脚本: c:\> tclsh printargs.tcl first "second arg" first second arg c:\> 我能做到这一点。 但这是如何工作的? 争论进展如何 注意:我是一名初

从:

要运行控制台脚本,请调用tclsh.exe程序,将脚本文件的路径传递给它。命令行上的任何附加参数都将作为列表传递给argv全局变量中的脚本

# File printargs.tcl
foreach arg $::argv {puts $arg} 
我们可以从命令行调用此脚本:

c:\> tclsh printargs.tcl first "second arg"
first
second arg
c:\>
我能做到这一点。
但这是如何工作的?
争论进展如何


注意:我是一名初学者。如果我没有达到标准,很抱歉。

如果您了解对Tcl的调用是如何工作的,那么您应该知道,在下面的一行中,给出了两个参数,即第一个和“第二个参数”(需要引号来确保第二个参数由两个单词组成:

c:\> tclsh printargs.tcl first "second arg"
然后执行以下说明:

foreach arg $::argv {puts $arg} 
…利用控制结构:

foreach <variable-name> <list> { <commands> }
foreach{}
因此,arg是变量名(读取此变量需要添加$sign->$arg)

$::argv实际上是一个全局变量,包含命令行参数列表(包含第一个和“第二个arg”)

放置$arg是将$arg变量的内容打印到屏幕上的命令


但是可能还有更简单的例子。如果你想扩展你的技能,请阅读一些Tcl/Tk教程或书籍。Brent Welch的Tcl/Tk实用编程是一个很好的开始。

答案在你问题的第一段。这可能是你阅读的好主意。我在理解w方面有点困难您的问题是什么(超出了我用“脚本名称后的参数列表位于全局
argv
变量中”来回答的范围)。请尝试解释您遇到问题的部分。