ex pect 学习笔记及实例详解1
ex pect 是基于 tcl演变而来的,所以很多语法和 tcl类似,基本的语法如下所示:1
1首行加上/usr/bin/ex pect1
2spawn:后面加上需要执行的 shell命令,比如说 spawnsudotouchtestfile1
3ex pect: 只有 spawn执行的命令结果才会被 ex pect 捕捉到,因为 spawn会启动一个进程,只有这个进程的相关信息才会被捕捉到,主要包括:标准输入的提示信息,eof和 timeout
4send和 send_user:send会将 ex pect 脚本中需要的信息发送给 spawn启动的那个进程,而 send_user只是回显用户发出的信息,类似于 shell中的 echo而已
一个小例子,用于 linux下账户的建立:filename:account
sh,可以使用
/account
shnewaccout来执行;1#
/usr/bin/ex pect23set passwd"mypasswd"4set timeout6056if{$argc
=1}{7send"usage
/account
sh\$newaccount\n"8ex it9 }1011 set user [lindex $argv [expr $argc-1]]1213 spawn sudo useradd -s /bin/bash -g mygroup -m $user1415 expect {16"assword" {17send_user "sudo now\n"18send "$passwd\n"19exp_continue20}21eof22{23send_user "eof\n"24}25 }2627 spawn sudo passwd $user28 expect {29"asswo