Bash 期望中的参数扩展

Bash parameter expansion inside expect

我想做什么:

./script 192.168.1.{1..100}

#!/bin/expect -f

set servers_ip [lindex $argv 0]
set servers_port [lindex $argv 1]

set timeout -1

foreach ip $servers_ip {
        puts "\nIP = $ip"
}

预期输出:

IP = 192.168.1.1
IP = 192.168.1.2
IP = 192.168.1.3

实际输出:

IP=192.168.1.1

我无法使参数扩展工作,而且我不能使用外部文件。

您的 shell 在 启动 expect 之前 已经扩展了大括号扩展。 $argv 的前 100 个元素是个人 IP 地址。

这里,你要

set servers_ip $argv

然后,迭代它们应该会给你想要的东西