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"