Ожидайте - не форсирует ввод в порожденный процесс - PullRequest
0 голосов
/ 15 сентября 2009
package require Expect

#### Log File Name #####
set logFile "mtte_result.log"
set NextLine "\n"
set RTSPrompt "RTS_Mon-> "
exp_spawn plink.exe -telnet -P 10009 10.245.97.42

set spid $spawn_id
#exp_send $NextLine
flush stdout

##### Log the session to the File   #########
    exp_log_file -noappend $logFile

exp_sleep 5
exp_send $NextLine
expect $RTSPrompt
exp_send "hello world\r"

expect $RTSPrompt
exp_sleep 5
exp_close -i $spid
########################################################
########################################################

Здесь лог-файл имеет вывод:

RTS_Mon-> 

*RTS_Mon-> 

#####################################

Так что, кажется, что ввод не принудителен к процессу. Что-то не так в приведенном выше сценарии?

1 Ответ

0 голосов
/ 15 сентября 2009

Я не знаю, была ли это ошибка копирования и вставки, но я не думаю, что ваш код будет работать, должно быть что-то вроде:

package require Expect
# Log File Name
set logFile "mtte_result.log" 
set NextLine "\n" 
set RTSPrompt "RTS_Mon-> " 
exp_spawn plink.exe -telnet -P 10009 10.245.97.42
set spid $spawn_id
exp_send $NextLine
flush stdout
# Log the session to the File
exp_log_file -noappend $logFile
exp_sleep 5 
exp_send $NextLine 
expect $RTSPrompt 
exp_send "hello world\r"
expect $RTSPrompt 
exp_sleep 5 
exp_close -i $spid

Также убедитесь, что «exp_spawn» возвращается правильно

...