shell脚本免交互

免交互:

交互:我们发出指令控制程序的运行,程序在接收到指令之后按照指令的效果做出对应的反应。

免交互:间接的,通过第三方的方式把指令传送给程序,不用直接的下达指令。

Here Document 免交互:

这是命令行格式,也可以写在脚本当中。通过I/O重定向的方式将命令列表传送给交互式程序或命令。

是标准输入的一种替代品。代替了人工的输入方式。

语法格式:

命令(linux的系统命令) <<标记

内容1

内容2

内容3

标记

注意事项:

1.标记可以是任意合法字符(一般不用特殊字符,不以数字开头,通常以EOF作为默认的标记位)

2.结尾的标记位一定要顶格写。且前面不能有任何字符,空格也不行。

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

4.开头的标记前后的空格都会被省略掉

Expect实现免交互

用tcl语言写的一个工具,主要用于自动化控制和测试。解决shell脚本交互的问题。

转义符:

\n:换行

\r:回车

\t:相当于一个tab键

\b:表示退格,删除

整体变量赋值

#!/bin/bash
var="Great! I am going to school"
myvar=$(cat <<EOF
this is monday
$var
EOF
)
echo $myvar

'EOF'

在开头标记加上单引号就会关闭变量赋值。

set timeout5

set设置,timeout超时时间,expect有一个默认的超时时间10秒,设置超时时间5秒。

set也可以作为设置变量

spawn passwd dn

spwan 后面用来声名需要执行的命令,开启会话过程,并且跟踪后续的交互信息。

expect “新的 密码:“

捕获需要执行的命令

send “abc123\r”

输入指令代码

expect ”重新输入新的 密码:“

send “abc123\r”

最后一定要有结束语,结束只能写一个

expect eof

交互指令结束之后,会退回原用户,切换会之前的用户

interact

留在当前用户,不会动

嵌入执行模式,在shell当中假如expect。涉及到环境的切换的场那不建议使用徽章

实例操作一:免交互预设值修改用户密码

脚本实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值