标签:控制台 用户名 输出 user 标准输入 col 发送 bin inux
Linux下运行命令、脚本或程序时,经常需要从终端输入某些命令继续运行的指令,这些输入都需要人为的手工干预。
expect可以根据程序的提示,模拟标准输入提供给程序,从而实现自动化交互执行。一般位于 /usr/bin/ecpect 。
send : 用于向进程发送字符串
expect : 从进程接收字符串
spawn : 启动一个新的进程
interact : 退出自动化,进入人工交互
#!/usr/bin/expect # 设置超时时间,单位为秒,默认情况下是10秒;-1不会超时 set timeout 30 # 设置主机IP、用户名及密码 set host "101.200.241.109" set username "root" set password "123456" # spawn是进入expect环境后才可以执行的expect内部命令,直接在shell下执行是找不到spawn命令的;它主要的功能是给ssh运行进程加个壳,用来传递交互指令 spawn ssh $username@$host # expect也是expect的一个内部命令,这个命令的意思是判断上次输出结果里是否包含“password”的字符串,如果有则立即返回;否则就等待一段时间后返回,这里等待时长就是前面设置的30秒 expect "*password*" {send "$password\r"} # 执行完成后保持交互状态,把控制权交给控制台,进行人工交互;如果没有这一句登录完成后会退出,而不是留在远程终端上 interact
标签:控制台 用户名 输出 user 标准输入 col 发送 bin inux
原文地址:https://www.cnblogs.com/tongyishu/p/11775765.html