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

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

不幸的是我回来了无法读取“argv1”:没有这样的变量。如何使这项工作?

有帮助吗?

解决方案

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

[lindex $argv 0]

其他提示

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

spawn telnet [lindex $argv 0] 5038

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

我遇到了类似的错误,无法读取“argv0”:没有这样的变量,当我尝试在proc中使用$ argv0时。解决方案是使用 $ :: argv0 从全局命名空间显式访问它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top