expect的if分支问题
为什么expect中send的数据还留在缓存呢??
cp.sh的expect脚本如下:
#!/usr/local/bin/expect # 解释器声明set timeout -1# 设置超时时间,单位秒 #scp拷贝指令spawn .1expect {"*num*" { send "34\r"; exp_continue}"yes/no" { send "yes\r"; exp_continue}"*password*" {send "123456\r"}}expect eof# 模拟结束,把控制权交还控制台,如果不加这个,就等于直接退出了#interact
#include <stdio.h>int main(){ int a = 0; char password[20] = {0}; printf("please input a num:"); scanf("%d", &a); printf("this num is %d !\n", a); fflush(stdout); printf("please input a password:"); scanf("%s", password); printf("this password is %s !\n", password); return 0;}
root@192.168.200.207[root@localhost 1020]# ./cp.shspawn ./1please input a num:34this num is 34 !please input a password:34this password is 34 !123456root@192.168.200.207[root@localhost 1020]#