Expect自动化交互脚本

如果你对自动化任务感兴趣,Expect绝对是个不错的工具。它能帮你搞定那些需要手动输入的操作,比如 SSH 登录、远程服务器管理,或者自动化测试等场景。Expect是基于Tcl的,所以安装之前确认你的系统有 Tcl 哦。

它的用法也挺,几个关键命令就能实现复杂的功能: - spawn 启动程序 - expect 等待输出 - send 发送输入

比如下面这个小脚本就能帮你改登录的 Shell:

#!/usr/bin/expect
set user [lindex $argv 0]
spawn chsh $user
expect "]:" 
send "/bin/tcsh\r"
expect eof
exit

Expect还能超时和复杂的匹配情况,像这样:

set timeout 10
expect {
  "Password:" { send "mypassword\r" }
  timeout { send_user "Operation timed out!\n" }
}

Expect是个挺好用的工具,尤其适合搞 IT 运维的朋友。如果你常需要重复性任务,不妨试试它。

txt 文件大小:9.56KB