我可以通过控制台配置我的接入点,现在我想通过 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" }
添加“睡眠 1”就成功了。这不是“expect”命令的错误,而是我的接入点太慢了。