這是一個有趣的旋轉算法......你現在遇到的問題通過所有行迭代是,如果你看到% Not allowed
,簡單地繞過這條線,並移動到下一個爲編寫腳本會,如果它僅僅是把自己的線的一個出口,
for {set i 0} {$i == 4} {incr i} {
send "clear line vty $i\r"
"confirm]" {send "\r"}
"% Not allowed" {send "quit\r"; exit}
}
,而不是退出劇本...
for {set i 0} {$i < 4} {incr i} {
send "clear line vty $i\r"
expect {
"confirm]" { send "\r"; expect "*#" }
"% Not allowed" { send "! refusing to clear line vty $i\r"; expect "*#" }
}
}
的Cisco IOS認爲行是註釋,如果它開始!
在下面的腳本日誌,並清除除了劇本上......這個運行在我的實驗室細運行線路的所有線路。
#!/usr/bin/expect -f
spawn telnet 172.16.1.5
set user [lindex $argv 0]
set pass [lindex $argv 1]
expect "Username: "
send "$user\r"
expect "assword: "
send "$pass\r"
expect ">"
send "enable\r"
expect "assword: "
send "$pass\r"
expect "*#"
for {set i 0} {$i < 5} {incr i} {
send "clear line vty $i\r"
expect {
"confirm]" { send "\r"; expect "*#" }
"% Not allowed" { send "! refusing to clear line vty $i\r"; expect "*#" }
}
}
exit
我無法理解期望{}做什麼?它會帶來一堆期待嗎? – RAY
這是一種告訴期待尋找一對夫婦的答案 –
確定很好,另一件事...我正在運行一個期望的腳本來運行一個命令來檢查實驗室使用10分鐘後tty線佔用「sh line tty 1 sum」,然後匹配字符串...是否有可能如果他們是沒有人在線我可以以某種方式返回一個值在我的PHP腳本,這樣我可以刪除該用戶的憑據? – RAY