400 028 6601

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

shell编程expect免交互

今天小编就为大家带来shell编程中expect免交互的文章。小编觉得挺不错的,为此分享给大家做个参考。一起跟随小编过来看看吧。

十余年的姑苏网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整姑苏建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“姑苏网站设计”,“姑苏网站推广”以来,每个客户项目都认真落实执行。

一 : expect 概述

1.1 expect

二 : expect 安装

2.1 挂载光盘

2.2 制作本地yum仓库

2.3 执行安装命令

三 : expect基本命令

3.1 spawn : 启动进程,并跟踪后续交互信息

3.2 expect

3.3 send :向进程发送字符串,用于模拟用户的输入

3.4 interact : 执行完成后保持交互状态,把控制权交给控制台

3.5 Timeout :指定超时时间,过期则继续执行后续指令

3.6 exp_continue

3.7 send_user

备注:

3.8  $argv 参数数组

3.9 expect脚本必须以interact或expect eof结束,执行自动化任务通常expect eof就足够了

四 : expect 语法

shell编程expect免交互

五 : experct 执行方式

5.1 直接执行

[root@localhost ~]# vim a.sh
#!usr/bin/ecpect    //expect二进制文件的路径,
#设置环境
#超时时间
set timeout 9       //设置超时时间
log_file test.log   //日志文件路径
log_user 1          //用户数量为1
#定义变量
set hostname [lindex $argv 0 ]
set password [lindex $argv 1 ]
#开启追踪spawn
spawn ssh root@$hostname    //spawn 启动命令
#匹配条件,捕捉
expect {        //按条件捕捉去send执行
     "(yes/no)"
     {send "yes\r";exp_continue}
     "*passwor"
     {send "$password\r"}
}
#权限转交控制台
interact
[root@localhost ~]# chmod +x a.sh 
[root@localhost ~]# ./a.sh  $argv0 $argv1

5.2 嵌入执行

[root@localhost ~]# vim b.sh 
#!/bin/bash
   hostname=$1
   password=$2
   /usr/bin/expect<<-EOF    //expect开始EOF标志
   spawn ssh root@$hostname
   expect {
        "(yes/no)"
        {send "yes\r";exp_continue}
        "*password"
        {send "$password\r"}
   }
   expect "*]#"     //检索是否以root登陆
   send "exit\r"
   expect eof
EOF     //exprct结束标志,这个EOF不能有空格
[root@localhost ~]# source b.sh 

spawn :以spawn模式执行操作,expect 才可以捕捉到

六 : expect 案例

6.1 创建用户tom,密码123123

shell编程expect免交互

[root@localhost ~]# vim b.sh 
#!/bin/bash
user=$1
mima=$2
/usr/bin/expect<<-EOF
spawn useradd $user
spawn passwd $user
expect {
  "New password"
  {send "$mima\r";exp_continue}
  "new password"
  {send "$mima\r"}
}
expect eof
EOF
[root@localhost ~]# chmod +x b.sh 
[root@localhost ~]# ./b.sh qqq 965483
spawn useradd qqq
spawn passwd qqq
Changing password for user qqq.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@localhost ~]# vim b.sh
[root@localhost ~]# id qqq
uid=1001(qqq) gid=1001(qqq) groups=1001(qqq)

shell编程expect免交互

6.2 ssh登录

shell编程expect免交互

shell编程expect免交互

shell编程expect免交互

shell编程expect免交互

6.3 利用expect完成ftp登录过程

shell编程expect免交互

shell编程expect免交互

想要注释多行语句  可以在首部输入 :<

以上就是shell编程expect免交互的方法介绍,详细使用情况还得要大家自己使用过才能知道具体要领。如果想了解更多相关内容,欢迎关注创新互联行业资讯频道!


分享文章:shell编程expect免交互
文章出自:http://mbwzsj.com/article/gdigpe.html

其他资讯

让你的专属顾问为你服务