关于expect shell 与rsh
#!/bin/bash
ip=1
while [ $ip -lt 255 ]
do
echo "#####################################---$ip">>statusinfo
echo "------------------username:">>statusinfo
echo "hadoop">>statusinfo
echo "------------------ip:">>statusinfo
echo "192.168.150.$ip">>statusinfo
echo "------------------hostname:">>statusinfo
expect -c "
set timeout 25
expect *
spawn rsh 192.168.150.$ip -l hadoop hostname>>statusinfo
expect "password"
send "hadoop\r"
"
sleep 2
ip=`expr $ip + 1`
done
我的目的是通过一次循环,获取150段内所有机器的主机名和对应的ip地址,通过rsh远程机器,然后hostname命令结果重定向到本机的statusinfo文件中,可是每当shell运行到输入密码后,然后直接进入下一次循环,根本没有执行hostname命令,这是为什么 啊?大神?
都一天了,还是个这样子!
------解决方案--------------------
set results $expect_out(buffer)