我希望能夠通過一個長期命令來期待。不知怎的,這是一個多重命令。首先,這裏是我期待的腳本EXPECT如何將一個轉義字符解釋爲一個命令字符
#!/usr/bin/expect -f
set timeout -1
spawn telnet xxx.xxx.xxx.xxx
expect "*?username:*"
send "someusername\r"
expect "*?assword:*"
send "somepassword\r"
# Here's the command I'd like to pass from the command prompt
set command [lindex $argv 0]
send "$command\r"
send "exit\r"
我會再運行該腳本這樣:
./expectscript "mkdir /usr/local/dir1\ncd /usr/local/dir1\ntouch testfile"
注意,我把「\ n」來啓動進入,好像我處理命令前移到下一個。
我知道你可以用「;」來分隔命令,但是對於這個特殊練習,我希望能夠用「\ r」來解釋「\ n」,這樣期望會表現爲雖然它是這樣的:
send "mkdir /usr/local/dir1\r"
send "cd /usr/local/dir1\r"
send "touch testfile\r"
接下來的問題就是如何能期待解釋「\ n」來爲「\ r」?我試過把「\ r」放在參數中而不是「\ n」,但那不起作用。
感謝您的意見。
請注意,它是`{\\ n}`的正則表達式,因爲我們想匹配一個文字反斜槓-n,這就是最小化反斜槓的數量的形式,您必須編寫這些反斜槓才能使文字經過Tcl的解析和RE引擎解析... – 2010-11-24 10:34:17