Expect概述
Expect是一个用来实现自动交互功能的软件套件 (Expect [is a] software suite for automating interactive tools)
Expect使用
Expect通过匹配关键字自动推送参数到脚本中,将人机交互操作转化为自动执行。
1.基本例子(设置文件权限)
#!/usr/bin/expect -f
set timeout 10
set dbf_dir [lindex $argv 0]
set passwd [lindex $argv 1]
spawn su – oracle
expect “*Password*”
send “$passwd\r”
expect “>”
send “chmod 750 $dbf_dir/tbs_test_*.dbf\r”
expect “>”
send “exit\r”
expect eof
2.明文密码处理(敏感参数通过流的方式传递到脚本中,ps -ef获取到的进程信息中便不会显示敏感信息)
expect脚本获取敏感参数
expect_user -re “(.*)\n”
set oracle_passwd $expect_out(1,string)
shell脚本获取敏感参数
INPUT_PWD=””
read -p “Enter Password :” INPUT_PWD
expect举例
#!/usr/bin/expect -f
set timeo