1

我想创建一个期望脚本,通过 telnet 连接到服务器并进行一些授权。不过,我在使用脚本参数时遇到了问题。基于 man 我希望这会起作用:

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

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

4

3 回答 3

5

命令行参数作为变量 argv 中的列表提供,您可以使用 lindex 从该列表中获取元素,因此如果第一个参数是要远程登录的主机,请执行以下操作:

spawn telnet [lindex $argv 0] 5038

请参阅Shell 中的Shell提供的变量列表中的lindex

于 2009-10-28T14:30:28.920 回答
4

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

[lindex $argv 0]
于 2009-10-28T14:28:09.360 回答
0

can't read "argv0": no such variable当我尝试在 proc 中使用 $argv0 时,我遇到了类似的错误。解决方案是通过使用从全局命名空间显式访问它$::argv0

于 2016-03-18T17:05:12.403 回答