第五章 编程之免交互

免交互:不需要人为控制就可以完成的自动化操作(自动化运维)

shell脚本和面交互是一个概念,但是两种写法

shell:默认解释器是bash

第五章 编程之免交互_第1张图片

使用i/o(输入/输出)重定向的方式,将命令的列表提供给交互式的程序或者命令

cat read 是一种标准输入,只能接受正确的指令或者命令

格式

第五章 编程之免交互_第2张图片 

注意事项

1.标记可以使用人以合法字符(通常用EOF)

2.结尾的标记一定要顶格写,前面不能有任何字符

3.结尾的标记后面,也不能有任何字符,包括空格

4.如果开头的标记前有空格,这个空格会被自动省略 

第五章 编程之免交互_第3张图片

cat结合免交互实现重定向输出到指定文件

第五章 编程之免交互_第4张图片

第五章 编程之免交互_第5张图片第五章 编程之免交互_第6张图片 

 

 

去掉每行之前的tab字符

第五章 编程之免交互_第7张图片 

第五章 编程之免交互_第8张图片 

多行注释(#就是不注释)

第五章 编程之免交互_第9张图片 

第五章 编程之免交互_第10张图片

第五章 编程之免交互_第11张图片

第五章 编程之免交互_第12张图片

第五章 编程之免交互_第13张图片

 

 Expect 需要自动安装

tcl语言基础之上的一种工具,自动化测试和控制,在脚本中解决交互的问题

转义符:\n 换行 \t制表符,tab键 \r回车 \b退格键,就是删除键

基本命令格式

 

第五章 编程之免交互_第14张图片

语法

spawn后面通常跟一个linux的执行命令,表示开启一个会话,启动一个进程,并且跟踪后续的交互信息

expect,捕获,上一次执行的命令中,是否包含指定的字符串,如果有立即返回,否则等待超时,自动退出(默认超时时间为10s)

expect 只能捕获由spawn启动的进程输出

send 向进程发送字符串,用于模拟用户的输入,该命令不能自动回车,一般后面加一个回车键:\r 或者\n

第一种写法

第五章 编程之免交互_第15张图片

 第二种写法

 第五章 编程之免交互_第16张图片

 第三种多分支结构

第五章 编程之免交互_第17张图片

 

 只要匹配其中一个情况,执行相应的send语句,然后退出

expect

结束符:expect eof:会切换回之前的终端

             interact 留在当前终端不变

set 设置超市等待时间,默认是10s

set timeout 5  -1()则表示永不超时

面交互实现修改密码

第五章 编程之免交互_第18张图片

 

expect_continue 可以在expect判断之后,继续匹配expect,捕获的其他内容,类似于脚本中continue,表示允许继续向下执行指令

第五章 编程之免交互_第19张图片

 

send_user 会先信息,相当于echo跟上用户想要输出的内容

接收参数:类似于shell当中的位置变量$1 $2

第五章 编程之免交互_第20张图片

 

嵌入执行模式:有一个问题:如果涉及终端切换,最好不要用嵌入模式

创建用户密码 

第五章 编程之免交互_第21张图片

第五章 编程之免交互_第22张图片

 

ssh远程登陆

第五章 编程之免交互_第23张图片

 

第五章 编程之免交互_第24张图片

 

 

你可能感兴趣的:(spring)