不需要进入到文件内部 可以再文件外对文件内容进行操作
- 如何对文本内容进行免交互 here document 免交互 对文本内容进行操作 标准输入的替代品
语法格式:命令 <<标记换行
内容
标记
命令:Linux命令
注意事项:
- 标记可以使用任意合法字符(字母和数字 一边不使用特殊符号 一般以字母为开头 EOF)
- 结尾标记一定要顶格写 结尾的标记前不能有任何字符
- 开头标记可以加空格 但是会被自动省略(开头标记前一般也没有空格)

免交互输入文本内容

Tee 本身就有标准输出的作用 可以直接把内容输入到文件中


整体赋值给变量

关闭传参 在开头标记上加单引号
去掉每行前的tab字符
在开头标记前加-和单引号 只能消除tab键 不能消除空格
Expect 免交互 shell脚本中实现免交互
自动化控制和测试 解决shell脚本中相关交互问题
是建立在tcl语言基础上的工具

前面是安装位置 后面是帮助文档位置
如果要用 要先 安装 声明
执行时必须赋权执行
常用的转义字符:\n 换行
\t 制表符 相当于tab键
\r 就是回车
\b 退格符
Spawn Linux命令 表示开启会话或进程 且跟踪后续的交互信息(捕获命令的相关内容 字符串匹配)
Send 发送指令 模拟用户的输入



结束符:expect eof 表示交互结束 等待执行结束 退回到原来的用户 默认等待时间10s
Interact 执行完成后保持状态 把控制权交给控制台 然后停留在目标终端
结束符只能二选一
Set 定义变量,设置参数 set timeout 5
Set hostname [ lindex $argv 0]
Hostname=$1
Exp_continue 和expect捕获命令 结合一起使用 附加在expect判断项之后 匹配到expect的捕获内容之后 还能够继续判断expect捕获语句中的其他选项
Send_user 回显命令 跟echo一样 打印内容

嵌入执行 讲expectm免交互的过程和shell结合起来
Ssh su会涉及终端切换 不建议使用嵌入式执行
免交互:
here document
主要是用在文本文件,给文件文件输入内容
命令 <<EOE
内容
Eoe
cat <<EOF>ftest.txt
内容
tee test.txt <<EOF
内容
expect:
声明
Set 传参 set timeout 5
set hostname [lindex $argy 0]
set hostname [lindex $argy 1]
$2
spawn passwd dn
开启命令或者进程
expect
捕获命令关键字
律用引号引起来
"密码" send"123456\r
结束符:
expect eof
返回上一次执行的终端
Interact
停留在当前终端 后面的命令不会执行
嵌入式
Expect和shell脚本结合使用
Expect主要作用就是为了解决shell脚本的交互问题
涉及终端切换一般不使用嵌入式
#!/bin/bash
Shell当中执行不需要交互的命令
需要交互的命令交给expect
/usr/bin/expect << EOF
在shell脚本中开启面交互指令
结束符卸载EOF之前
Interact
EOF
1260

被折叠的 条评论
为什么被折叠?



