shell脚本免交互

不需要进入到文件内部 可以再文件外对文件内容进行操作

  1. 如何对文本内容进行免交互 here document 免交互 对文本内容进行操作 标准输入的替代品

语法格式:命令 <<标记换行

内容

标记

命令:Linux命令

注意事项:

  1. 标记可以使用任意合法字符(字母和数字 一边不使用特殊符号 一般以字母为开头 EOF)
  2. 结尾标记一定要顶格写 结尾的标记前不能有任何字符
  3. 开头标记可以加空格 但是会被自动省略(开头标记前一般也没有空格)

免交互输入文本内容

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值