Hello jason zhang,
 
        你的方法可以解决问题,要注意命令之间不要换行,expect "*ssword:"
send "your_pass\r"
expect {
eof { exit 1 } "*ssword:" {exit 2}  "*#" {exit 3} "*$" {exit 4} timeout {exit 
6}}
 
Regards!        
 
 
zheng918
email: [EMAIL PROTECTED]
2008-05-22

======= 2008-05-22 09:24:43 您在来信中写道:=======

>恩,需求理解错了。
>expect里不用发送shell命令吧,你根据返回的不同字串定义不同的退出码不行吗? 然后在shell里检查expect的退出码。
>类似这样:
>
>expect "*ssword:"
>send "your_pass\r"
>expect {
>eof { exit 1 }
>"*ssword:" {exit 2}
>"*#" {exit 3}
>"*$" {exit 4}
>timeout {exit 6}
>}
>
>2008/5/21 zheng918 <[EMAIL PROTECTED]>:
>
>> Hello jason zhang,
>>
>>
>>  在shell中执行ssh,此时ssh属于shell的子进程,在ssh结束以前,是不会将控制权返回给当前shell的,因为只用到一个shell
>>
>>        所以使用kill去发信号,得等子进程结束,中断就没有意义了。
>>
>> Regards!
>>
>>
>> zheng918
>> email: [EMAIL PROTECTED]
>> 2008-05-21
>>
>>
>> >
>>
>
>>

= = = = = = = = = = = = = = = = = = = =

--~--~---------~--~----~------------~-------~--~----~
 要向邮件组发送邮件,请发到 [email protected]
 要退订此邮件,请发邮件至 [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---

回复