一、Here Document免交互
概述
- 使用I/0重定向的方式将命令列表提供给交互式程序
- 标准输入的一种替代品
- 语法格式
命令 <<标记
...
...
标记
使用注意事项
- 标记可以使用任意合法字符EOF
- 结尾的标记一定要顶格写,前面不能有任何字符
- 结尾的标记后面也不能有任何字符(包括空格)
- 开头标记前后的空格会被省略掉
二、Here Document常规用法
1、命令
例,通过read命令接受输入并打印
[root@localhost ~]# read a<<EOF
> lover fucker
> EOF
[root@localhost ~]# echo $a
lover fucker
cat命令输出免交互
[root@localhost opt]# cat > demo1.txt <<EOF
> 王鹏太帅辣!!!!
> EOF
[root@localhost opt]# cat demo1.txt
王鹏太帅辣!!!!
2、变量替换
三、Expec基本命令
1、spawn
- spawn 后面迪常跟一个Linux执行命令,表示开启一个会话、启动进程,并跟踪后续交信息。
- 例:spawn passwd root
2、expect
- 判断上次输出结果中是否包含指定的字符串,如果有则立即返回,否则就等待超时时间后返回
- 只能捕捉由spawn启动的进程的输出
- 用于接收命令执行后的输出,然后和期望的字符串匹配
3、send
- 向进程发送字符串,用于模拟用户的输入
- 该命令不能自动回车换行,一般要加\(回车)
四、Expect执行方式
方式一:expect "密码" { send "abcl23\r" } #同一行send部分要有{}
方式二:
- expect "密码"
- send " abcl23\r" #换行send部分不需要有{}
方式三:
expect支持多个分支
expect
#只要匹配了其中一个情况,执行相应的send语句后退出该expect语句
- "密码1"{send "abc123\r"}
- "密码2"{send "123456\r"}
- "密码3"{send "123123\r"}