期待论证处理

时间:2009-10-28 11:35:11

标签: tcl expect arguments

我想创建一个期望脚本,通过telnet连接到服务器并进行一些授权。我有使用脚本参数的问题。基于男人,我希望这可以工作:

#!/usr/bin/expect -f
spawn telnet $argv1 5038
...

不幸的是我回来了can't read "argv1": no such variable。如何使这项工作?

3 个答案:

答案 0 :(得分:5)

Commmand行参数作为变量argv中的列表提供,您可以使用lindex从此列表中获取元素,因此如果第一个参数是telnet的主机,请执行:

spawn telnet [lindex $argv 0] 5038

请参阅Shells中的外壳程序提供的变量Lists中的 lindex

答案 1 :(得分:4)

$argv是一个包含命令行参数的Tcl列表,索引从0开始。你想要:

[lindex $argv 0]

答案 2 :(得分:0)

当我尝试在proc中使用$ argv0时,我遇到了类似的错误$::argv0。解决方案是使用i从全局命名空间显式访问它。