shell脚本之免交互
目录
一、Here Document 免交互
1、交互与免交互的概念
2、 Here Document 概述
二、Here Document 应用
1、使用cat命令多行重定向
2、使用tee命令多行重定向
3、使用read命令多行重定向
4、使用wc -l统计行数
5、使用passwd命令用户修改密码
6、Here Document 变量设定
二、expect工具实现免交互
1、expect工具介绍
1.1 expect工具概念和特性
1.2 检测expect软件
2、expect工具运用
2.1 expect基本使用
2.1.1 声明expect脚本解释器
2.1.2 spawn启动进程并捕捉交互信息
2.1.3 expect 从进程接收字符串
2.1.4 send 向进程发送字符串
2.1.5 exp_continue
2.1.6 set 设置会话超时时间
2.1.7 接收参数
2.1.6 结束符( expect eof 或 interact 只能二选一)
3、expect 免交互的脚本
3.1 免交互传输文件
3.2 ssh 远程登录
3.3 免交互fdisk分区
3.4 免交互切换用户
3.5 expect嵌入bash免交互修改用户密码
3.6 expect嵌入bash免交互远程创建用户
一、Here Document 免交互
1、交互与免交互的概念
交互:在程序或系统与用户之间进行双向的信息交流和操作的过程。在交互式环境中,用户可以通过输入命令、提供数据或点击界面元素等方式与程序或系统进行沟通,并接收相应的反馈和结果
免交互:指在执行脚本时,无需用户输入任何信息或进行任何交互操作。通常情况下,shell脚本需要通过读取用户的输入来执行相应的操作或获取必要的参数。然而,有时候我们希望脚本能够自动化地执行任务,而不需要用户干预
2、 Here Document 概述
Here Document 是标准输入的一种替代品,使用I/O重定向的方式将命令列表提供给交互式程序 ,可以帮助脚本开发人员不必使用临时文件来构建输入信息,而是直接就地生产出一个文件并用作命令的标准输入,Here Document 可以与非交互式程序和命令一起使用
#通用格式 命令 或>>来将多行文本重定向到文件1、使用cat命令多行重定向
> 指输入的内容覆盖到文件 >> 指输入的内容追加到文件注:
在上面的示例中,cat > word表示将输入重定向到 word 文件中
word >
2、使用tee命令多行重定向
tee [选项]... [文件]...
选项 | 说明 |
---|---|
-a, --append | 内容追加到给定的文件而非覆盖 |
-i, --ignore-interrupts | 忽略中断信号 |
3、使用read命令多行重定向
read命令只会读取输出的第一行的内容作为 i 的值
4、使用wc -l统计行数
使用 wc -l 命令后面直接跟文件名就可以统计文件内有多少行内容,将要统计的内容置于标记“EOF” 之间,直接将内容传给 wc -l 来统计
5、使用passwd命令用户修改密码
6、Here Document 变量设定
Here Document 也支持使用变量,如果标记之间有变量被使用,会先替换变量值。如果想要将一些内容写入文件,除了常规的方法外,也可以使用 Here Document
如果写入的内容中包含变量,在写入文件时要先将变量替换成实际值,在结合 cat 命令完成写入
#!/bin/bash a="www.baidu.com" b=$(cat