- 论坛徽章:
- 0
|
本帖最后由 ljwd1000 于 2013-03-05 10:46 编辑
- #!/bin/bash
- ip=192.168.1.20
- passwd="xxxxx"
- #/tt这个目录是不存在的
- comm="ls /tt"
- expect -c "spawn ssh $ip $comm
- expect {
- yes/no {send yes\r};
- password: {send $passwd\r};
- }
- expect eof";
复制代码 我现在想得到192.168.1.20这台机器上的执行命令ls /tt后的返回状态值(也就是$?的值;现在的$?值应该为2);求方法
解决代码参见如下:- #!/bin/bash
- ip=192.168.1.20
- passwd="xxxxxxx"
- comm="ls /tt;echo \$?"
- expect -c "log_user 0
- spawn ssh $ip
- expect \"assword\"
- send $passwd\r
- sleep 1
- send \"$comm\r\"
- expect -re {ls:(.*)([0-9]+)} {exit \$expect_out(2,string)}
- "
- echo $?
复制代码 |
|