- 论坛徽章:
- 0
|
小弟才接触expect,遇到一个问题,请教各位大牛。
现在在B机器上编写了一个shell脚本,代码如下:
cat /home/aaa.sh
#!/bin/bash
for((i=0;i<5;i++));
do
echo -n "输入数字:";
read Number;
echo "计算结果:$(($i+$Number))";
done;
循环5次,每次读取输入数字,然后计算,并打印出结果。(在B机器上运行没有问题)
然后在A机器上编写了一个expect脚本,代码如下:
cat aaa.ex
#!/usr/bin/expect
set user [lindex $argv 0]
set ip [lindex $argv 1]
set passwd [lindex $argv 2]
set comdline [lindex $argv 3]
send_user "$comdline\r"
set timeout -1
spawn ssh -l $user $ip $comdline
expect {
"*yes/no" { send "yes\r"; exp_continue}
"*password:" { send "$passwd\r" }
}
expect eof
exit
执行aaa.ex命令
#expect ./aaa.ex root 192.168.0.2 qazwsx /home/aaa.sh
spawn ssh -l root 192.168.0.2 /home/aaa.sh
root@192.168.0.2's password:
输入数字:
当我在“输入数字”后面输入一个数字以后,敲回车键就换行了,程序也没有往下执行。
请问各位大牛,这个是什么回事呢,有没有办法解决呢? |
|