当前位置: 首页 > news >正文

学生个人网站模板/百度ai入口

学生个人网站模板,百度ai入口,个人兼职做建设网站,可以自己做网站服务器不小型自动化运维--expect入门知识 Expect的自动交互工作流程简单说明: spawn启动指定进程-->expect获取期待的关键字-->send向指定进程发送指定字符-->进程执行完毕,退出脚本。 spawn命令 如果没有spawn命令,expect程序将会无法实现自…

小型自动化运维--expect入门知识


Expect的自动交互工作流程简单说明:

spawn启动指定进程-->expect获取期待的关键字-->send向指定进程发送指定字符-->进程执行完毕,退出脚本。

  1. spawn命令

    如果没有spawn命令,expect程序将会无法实现自动交互。

    spawn命令的语法为:

    spawn [选项] [需要自动交互的命令或程序]

    例如:spawn ssh root@192.169.5.74 uptime 

    说明:在spawn命令的后面,直接加上要执行的命令或程序(如上例的ssh命令)等,除此之外,spawn还支持一些选项(了解即可!)

    -open:表示启动文件进程;

    -ignore:表示忽略某些信号;

  2. expect命令

    expect命令的语法为:

    expect 表达式 [动作]

    例如:spawn ssh root@192.169.5.74 uptime 

        expect "*password" {send "root\r"}

    说明:上述命令不能直接在linux命令行中执行,需要放入expect脚本中进行。

  3. 根据上述两个命令,写一个简单的expect脚本

    方法一:

    #!/usr/bin/expect    ##可以使用which expect查看

    spawn ssh root@192.169.5.74 uptime

    expect "yes/no" {send "yes\n"}

    expect "*password" {send "root\n"}   ##\n表示换行,这里也可以使用\r表示回车

    expect eof    ##想要输出结果,必须加上eof(end of file),表示expect的结束

    执行的结果如下:

    wKiom1l1iYShhNf4AAAXr11UBLg578.png

    方法二:

    将expect与send不放在同一行,这样就不需要使用{}(大括号)了,上面的例子可以改成:

    #!/usr/bin/expect

    spawn ssh root@192.169.5.74 uptime

    expect "yes/no"

    send "yes\n"

    expect "*password"

    send "root\n"

    expect eof

    执行的结果如上!

  4. exp_send、exp_continue与多行expect的用法举例

    #!/usr/bin/expect

    spawn ssh root@192.169.5.74 uptime

    expect {

    #   "yes/no" {exp_send "yes\r";exp_continue}

    #   "*password" {exp_send "root\n"}

       "yes/no" {send "yes\r";exp_continue}

       "*password" {send "root\n"}

    }

    expect eof

    说明:(1)exp_send和send类似,后面的\r(回车),\n(换行);

        (2)expect {},类似于多行expect;

        (3)匹配多个字符串,需要在每次匹配并执行动作后,加上exp_continue。

  5. send_user命令,类似shell里的echo命令

    #!/usr/bin/expect

    send_user "My name is wtf.\n"

    send_user "I am a linuxer,\t"  ##制表符

    send_user "My blog is www.wutengfei.blog.51cto.com\n"

    执行的结果如下:

    wKioL1l1lhCwg5J5AAAQkhf6c_M003.png

  6. exit命令

    exit命令功能类似于shell中的exit,即直接退出Expect脚本,除了最基本的退出脚本功能之外,还可以利用这个命令对脚本做一些关闭前的清理和提示等工作,举例如下:

    #!/usr/bin/expect

    send_user "My name is wtf.\n"

    send_user "I am a linuxer,\t"

    send_user "My blog is www.wutengfei.blog.51cto.com\n"

    exit -onexit {

      send_user "Good bye.\n"

    }

    执行结果如下:

    wKiom1l1l5WC6lk2AAAS44xhkWg848.png

  7. expect程序变量

    (1)普通变量

    定义变量的基本语法如下:

    set 变量名 变量值

    如:set password "root"

    打印变量的两种方法:

    方法一:

    puts $变量名

    如:puts $password

    方法二:

    send_user "$password\n"

    举例如下:

    #!/usr/bin/expect

    set password "root"

    puts $password

    send_user "$password\n"

    执行结果如下:

    wKioL1l1nZjiEXE5AAAIzgJKKWM272.png

    (2)特殊变量

    在Expect里也有与shell脚本里的$0、$1、$#等类似的特殊参数变量,用于接收及控制Expect脚本传参。在Expect中$argv表示参数数组,可以使用[lindex $argv n]接收Expect脚本传参,n从0开始,分别表示第

    说明:[lindex $argv 0]相当于shell中的$1,[lindex $argv 2]相当于shell中的$2;$argv0(相当于shell中$0)表示脚本的名字;$argc(相当于shell中$#)表示参数的总个数。

    #!/usr/bin/expect

    #define var

    set file [lindex $argv 0]

    set host [lindex $argv 1]

    set dir  [lindex $argv 2]

    send_user "$file\t$host\t$dir\n"

    puts "$file\t$host\t$dir\n"

    puts $argv0

    puts $argc

    执行结果如下:

    wKioL1l1n-_TXMUNAAAXjBOGPII826.png

  8. 一个[lindex $argv 0]参数,第二个[lindex $argv 1]参数。。。



本文转自品鉴初心51CTO博客,原文链接:http://blog.51cto.com/wutengfei/1950472,如需转载请自行联系原作者





http://www.lbrq.cn/news/785125.html

相关文章:

  • 免费logo设计网站推荐/谷歌搜索入口 镜像
  • 江苏设计网站电话/旅游网络营销的渠道有哪些
  • 四川省建设监理协会网站/磁力多多
  • php网站文件夹恶意复制 空间占满/营销型网站建设运营
  • WordPress做漫画网站/其他搜索引擎
  • 网站漏洞怎么修复/又有什么新病毒出现了
  • 武汉免费做网站/百度知道官网
  • 可以做四级的网站/搜索引擎优化实训
  • 用什么给网站做测试/推广之家app下载
  • 免费网站部署/黑龙江头条今日新闻
  • 网站开发费用多少/如何推广新产品的方法
  • 北京市建设工程信息网查询/网站排名优化方法
  • 官方网站手机专卖店/标题关键词优化技巧
  • 企业检索网站建设/郑州外语网站建站优化
  • 做企业福利网站起名/东莞疫情最新消息今天新增
  • 浏览器如何做购物网站/网络营销一般月薪多少
  • 网站查询功能怎么做/百度云群组
  • 网站建设色调的/seo网站推广服务
  • wordpress 查看文章404/贵州seo学校
  • 网站开发需求说明书/新闻最新消息今天
  • 二建转注辽宁建设主管部门网站/广州品牌营销策划公司排名
  • b2b商业模式/长沙靠谱seo优化价格
  • 广州网站手机建设公司/怎么制作网址
  • 论文收录网站有哪些/注册域名费用一般多少钱
  • 怎样在b2b网站做推广/东莞新闻头条新闻
  • 免费建设淘宝客网站/镇江seo
  • 杭州专业网站设计制作公司/淘宝引流推广平台
  • 乡村网站建设/91永久海外地域网名
  • 武汉 网站建设 招标公告/爱站seo工具包官网
  • 什么人适合做服装设计师/惠州seo排名优化
  • 数据结构---配置网络步骤、单向链表额外应用
  • 深度学习TR3周:Pytorch复现Transformer
  • 在linux(ubuntu)服务器上安装NTQQ并使用
  • 系统性学习数据结构-第一讲-算法复杂度
  • 【RK3568 RTC 驱动开发详解】
  • java实现运行SQL脚本完成数据迁移