Shell 编程之免交互

Here Document 免交互

标记可以使用任意的合法字符;
结尾的标记一定要顶格写,前面不能有任何字符;
结尾的标记后面也不能有任何字符(包括空格);
开头的标记前后的空格会被省略掉
Here Document 免交互

Here Document 可以实现免交互,通过 Here Document 可以 将一些简单的交互任务的交互过程去除掉,尤其是在编写脚本的过程中
1. 通过 read 命令接收输入并打印

通常使用 read 命令接收用户的输入值时会有交互过程,尤其是在脚本执行过程中遇到read 命令,脚本会停下来等待用户输入值后才会继续。

2. 通过 passwd 给用户设置密码

通过 passwd 命令给 jerry 用户设置密码,为避免重复交互,可使用 Here Document的方式

Here Document 变量设定

Here Document 也支持使用变量,如果标记之间有变量被使用,会先替换变量值。如 果想要将一些内容写入文件,除了常规的方法外,也可以使用 Here Document

Here Document 多行注释
Bash 的默认注释是 “#” ,该注释方法只支持单行注释,在 Shell 脚本的工作中, “#” 右侧 的任何字符串,bash 都会将其忽略
expect 语法
单一分支语法
当监控命令的标准输出满足 expect 指定的字符串时, 向标准输入发送 send 指定的字符串
expect "password " {send "mypassword\r“;}
多分支模式语法
多分支用于复杂的用户交互,一般情况下输出内容可能有多个,根据不同的输出内容, 分别向标准输入发送不同的内容
expect
{
"aaa" {send "AAA\r"}
"bbb" {send "BBB\r"}
"ccc" {send "CCC\r"}
}
除了上述的多分支结构之外,还有另外一种多分支结构
expect
{
"aaa" {send “AAA”;exp_continue}
"bbb" {send “BBB”;exp_continue }
"ccc" {send "CCC"}
}
expect 执行方式
直接执行
expect 命令可以实现自动登录远程服务器, 并进入交互模式
嵌入执行
编写 Shell 脚本的时候需
要去调用 expect 脚本,使用不灵活可以采用嵌入执行模式将 expect 过程 融入 Shell 当中,方便执行和处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值