expect是一个用来处理交互的命令,可通过expect实现ssh自动登录,ftp自动登录,不需要手动输入密码。

 

1. scp传输文件



#将$SrcFile拷贝至$Host的$Work目录下
#spawn 启动新进程
expect -c "
spawn scp $SrcFile yourname@${Host}:${Work}
expect {
\"(yes/no)?\" { send \"yes\n\"; exp_continue; }
\"*assword:\" { set timeout 200; send \"${Password}\n\"; }
}
expect "100%"
expect eof"


 

 

2. ssh自动登录



#远程启动$FileName进程,多条命令以;分隔
expect -c "
spawn ssh yourname@${Host} \"cd ${Work}; ./${FileName};\"
expect {
\"(yes/no)?\" { send \"yes\n\"; exp_continue; }
\"*assword:\" { set timeout 200; send \"${Password}\n\"; }
}
expect eof"