使用expect命令配置zyxel接入点

问题描述 投票:0回答:1

我可以通过控制台配置我的接入点,现在我想通过 Expect 命令批量执行此操作。它不起作用,我怀疑问题是 Expect 不喜欢 : 在变量中。

这是我的脚本。我希望将 $macadress 发送到我的接入点的控制台。但它仍然是空的。有时在调试时我会看到显示我的 Macadress 的前两个字符。 Expect 不适用于包含冒号的变量吗?但是,我尝试转义冒号,但这也不起作用。

可能的用法可能是

expect block-mac.expect aa:bb:cc:dd:ee:ff accpoint-01
#!/usr/bin/expect

# Usage block-mac.expect <mac-adress> <hostname-accesspoint>

set macadress [lindex $argv 0];
set accesspoint [lindex $argv 1];

puts $accesspoint
puts $macadress

spawn ssh admin@$accesspoint.mydomain.com

expect "*assword:" { send „super_secure\r“}
expect "Router" { send "enable\r"}
expect "Router#" { send "configure terminal\r"}
expect "Router(config)" { send "wlan-macfilter-profile mac-filter\r"}
expect "Router(config-wlan-macfilter mac-filter)#" { send "filter-action deny\r"}
expect "Router(config-wlan-macfilter mac-filter)#" { send "$macadress\r" }
expect
1个回答
0
投票

添加“睡眠 1”就成功了。这不是“expect”命令的错误,而是我的接入点太慢了。

© www.soinside.com 2019 - 2024. All rights reserved.