本文主要是介绍expect自动化交互应用程序工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
安装 expect
语法介绍
基本命令
控制结构
变量和字符串
样例 expect 脚本
Example 1: 自动登录 SSH 并执行命令
Example 2: 自动与 FTP 服务器交互
Example 3: 与 telnet 自动交互
调试与运行脚本
调试模式
运行脚本
sshpass与expect应用-CSDN博客
expect
是一个用于自动化交互应用程序的工具,主要在 UNIX 系统上使用。它可以通过脚本控制和自动化与其他交互式程序的对话,例如 ssh
、ftp
、telnet
等等。expect
使得自动执行一些需要用户输入的命令变得非常简单和方便。
安装 expect
sudo yum -y install expect
语法介绍
基本命令
spawn
:启动一个进程并进入交互模式。expect
:等待特定的模式或字符串出现。send
:发送字符串到启动的进程(模拟用户输入)。interact
:允许用户接管控制,手动进行交互。exp_continue
:继续期待下一个模式匹配,这是在 expect 块中常用的命令。- expect eof : 结束expect匹配
控制结构
if
:条件判断语句。while
:循环语句。for
:for 循环语句。
变量和字符串
set
:定义和赋值变量。$
:用于引用变量。
样例 expect
脚本
Example 1: 自动登录 SSH 并执行命令
#!/usr/bin/expect# 设置超时时间为20秒
set timeout 20# 变量定义
set host "your.server.com"
set user "your_username"
set password "your_password"# 开始SSH会话
spawn ssh $user@$host# 等待各种可能的提示信息
expect {"yes/no" { send "yes\r"; exp_continue }"*assword:" { send "$password\r" }
}# 执行命令
expect "$ " { send "ls -l\r" }
expect "$ " { send "echo 'Hello, World!'\r" }
expect "$ " { send "exit\r" }# 等待会话结束
expect eof
Example 2: 自动与 FTP 服务器交互
#!/usr/bin/expect# 设置超时时间
set timeout 20# 变量设置
set server "ftp.example.com"
set user "your_username"
set password "your_password"# 开始FTP会话
spawn ftp $server# 期待用户名提示
expect "Name*"
send "$user\r"# 期待密码提示
expect "Password:"
send "$password\r"# 登录后的交互
expect "ftp>" { send "ls\r" }
expect "ftp>" { send "get example.txt\r" }
expect "ftp>" { send "bye\r" }# 等待会话结束
expect eof
Example 3: 与 telnet 自动交互
#!/usr/bin/expect# 设置超时时间
set timeout 20# 变量设置
set host "your.telnetserver.com"
set user "your_username"
set password "your_password"# 启动telnet会话
spawn telnet $host# 等待各种可能的提示信息
expect {"login:" { send "$user\r" }"Username:" { send "$user\r" }"*username:" { send "$user\r" }
}# 期待出现的密码提示
expect "*assword:" { send "$password\r" }# 登录后执行命令
expect "> " { send "help\r" }
expect "> " { send "exit\r" }# 等待会话结束
expect eof
调试与运行脚本
调试模式
使用 expect
提供的一些选项可以进行调试。
-d
:启用调试模式,输出期望和接收到的内容。log_user 1
orlog_user 0
:打开或关闭标准输出日志。打开时,所有send
和expect
操作都会在终端输出。关闭时则不会。
例如:
expect -d ./your_expect_script.exp
运行脚本
保存脚本到文件并确保它具有可执行权限:
chmod +x your_expect_script.exp
./your_expect_script.exp
这篇关于expect自动化交互应用程序工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!