韶晖 发表于 2023-6-13 01:19:29

linux 免交互

目录
一、免交互概念
二、基本免交互例子
三、expect
四、实验演示
 
 
 
 
 
 
 
 
一、免交互概念
  概念:对于shell脚本的自动化运维,就要实现免交互来达到自动化运维的效果
 
二、基本免交互例子
  可以免交互统计出行号
  1.命令行免交互统计

   2.使用脚本免交互统计

   3.使用免交互命令打印

   4.免交互修改密码

   5.重定向查看

   6.重定向到指定文件

   7.重定向直接指定文件

   8.使用脚本完成重定向输入


   9.免交互脚本完成赋值变量


   10.关闭变量替换功能,按照原来样子输出


   11.去tab键,无法去空格


   12.注释打印,无法生效:批量注释
  (1)脚本展示


   (2)命令行展示

 
 
 
三、expect
  expect:建立在tcl语言基础上的一个工具,常被用于进行自动化控制和测试,解决shell脚本中交互相关的问题。
  使用方法:表示捕捉关键词展示行
  1.脚本解释器
  (1)加入引用程序路径表示使用expect,表明使用这个shell
    运行只能使用./运行,运行前赋权777

   (2)嵌套使用
    可以使用sh运行

   
  2.expect符号:
    \n:表示换行符。
    \t:表示制表符。
    \r:表示回车符。
    \b:表示退格符。
  3.执行命令
    spawn 后面通常跟一个Linux执行命令,表示开启一个会话、启动进程,并跟踪后续交互信息。
  例如:


   3.send
    向进程发送字符串,用于模拟用户的输入;该命令不能自动回车换行,一般要加\r(回车)或者\n
  例子:

 

   4.expect多分支
   例子演示:ssh远程登录

 

   5.结束符
    expect eof:表示交互结束,等待执行结束,退回到原用户,与spawn对应
    interact:执行完成后保持交互状态,把控制权交给控制台,会停留在目标终端而不会退回到原终端,interact后的命令不起作用
    (1)expect(会在固定时间退回原先页面)

 

     (2)interact(停留在操作页面)

   6.set
    expect 默认的超时时间是 10 秒,通过 set 命令可以设置会话超时时间,若不限制超时时间则应设置为-1。
      例:set timeout 5
 
  7.exp_continue
    exp_continue 类似于控制语句中的 continue 语句。表示允许 expect 继续向下执行指令。

 
  8.send_user
    send_user 表示回显命令,相当于 echo。打印的功能
  例子演示:

 

   9.接收参数
    expect 脚本可以接受从bash命令行传递的参数
      使用获得。其中n从0开始
  例子演示:


 
四、实验演示
  1.免交互预设值修改用户密码

 

   2.su切换用户

 

   3.创建用户并设置密码

 

   4.实现 ssh 自动登录


    5.怎么能够实现密码输入错误的提示

 

   6.用免交互的方式给硬盘分区,格式化,挂载

 

 

来源:https://www.cnblogs.com/zhende/p/17474717.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: linux 免交互