我正在使用tcl腳本來打開與Linux機器的ssh連接並打開虛擬交換機應用程序。在交換機CLI內部,我添加> 1000個IP路由。tcl腳本運行不正常
我運行腳本爲= ./script_name.tcl
而不是通過tclsh
,因爲這往往會給我一些錯誤。
的問題是在某處怎麼TCL解釋,而TCL腳本中循環。 我while循環 -
sleep 1
set i 1
while {$i < 3 } {
set j 2
expect "*#"
while {$j < 255} {
send "ip route 2.2.$i.$j 255.255.255.255 4.4.4.1\r"
incr j
}
incr i
}
sleep 1
expect "*#"
set k 1
while {$k < 3 } {
set l 2
expect "*#"
while {$l < 255} {
send "ip route 1.1.$k.$l 255.255.255.255 1.1.1.5\r"
incr l
}
incr k
}
我用2,而用於新增500〜路線,因此總應> 1000個路由環路。問題是隻有〜500條路線被添加,下一個while循環不起作用。下一個while循環顯示爲在CLI中工作,但實際上不添加路由。
但是,如果我用while循環添加1000條路線。我將{$i < 3 }
的while循環計數器更改爲{$i < 5 }
,它可以工作。
不知怎的,第二個循環沒有得到正確執行。
更新:腳本中的執行順序非常奇怪。如果我在while循環後面加上'puts「語句」'。這些語句首先被打印 - 循環之後運行。是否有一些定義的tcl腳本運行順序的行爲? – tcpip
你不顯示你的'#!'行,但你必須用'expect'運行您的程序,或者用'tclsh'並添加行'包需要Expect'(用大寫E) –