1.shell介绍
通常所说的shell就是shell脚本,它是一门脚本语言,弱类型
2.shell规范
第一行内容为#!/bin/bash
#注释
是以.sh结尾的文件
3.shell语法
变量
定义变量:变量名=变量值
等号两边不能有空格
变量名不能为数字开头、字母、数字、下划线组成
变量值如果有空格,需要加引号
特殊变量定义:双引号、单引号、反单引号
"" :输出变量对应的值
'':原样输出
``:定义命令变量时需要使用``
命名规范
输出变量:echo $变量名
变量释放:unset 变量名
输入操作:
read 变量名 变量名 变量名----->变量名之间用空格隔开
read -p “提示信息” 变量名
向文件传递参数:
$1--->传递第一个参数
$2---->....
$3--->....
$n---->......
$0:显示的是文件名称
$@:显示所有的参数
$#:显示的参数的个数
重定向:将内容保存到文件中
正确命令: 用数字1表示,命令 1>文件名 ,命令 1>>文件名( >覆盖,>>追加)
错误命令:用数字2表示,命令 2>文件名 ,命令 2>>文件名(>覆盖,>>追加)
程序的结构:
分支结构:
if...else分支(注意:if和[之间有空格、条件和中括号之间有空格、条件和条件之间有空格,
条件中存在变量,变量名两边使用双引号):
逻辑运算符:-a -o !
比较运算符:-ge -gt -lt -le -eq -ne
测试文件的状态:test 参数 文件名
字符串判断:== ,!=
文件判断:-d -e -f -w -r -x .....
if...elif...else分支
case分支:
注意:
1.case这一行的最后为in
2.;;表示语句的结束
3. *:表示默认
4.esac:表示case语句结束
5.值:可以是字符串、数字、还可是区间范围【0-9】之间
循环结构
for循环
格式:for 变量名 in 列表
do
语句
done
命令:seq start size max---->分别表示开始点、步长、结束点
函数
定义:函数名(){}
调用:函数名 ----》必须先定义再调用
函数传参:用$n来接收传递的数据
函数的返回值:默认都有一个默认的返回值,正确(无错误命令)的函数---->返回值默认为0,错误的命令--->返回值默认为1,查看函数的返回值:$?
自动化部署实战:oracle的部署过程
涉及知识点:
查看文件中的前n条数据:head -n
在文件中查看内容:grep "内容" 文件名
剪取文件中的内容:cut
cut:
按照字节进行剪取---->空格:1个字节,字母、数字:1个字节,汉字:3个字节-----> 参数 : -b
按照字符剪取----->空格、数字、字母、汉字:1个字符---->参数: -c
按照域剪取-----> -d:表示使用的分隔符, -f:要剪取的第几个域
sed -i "行号a内容" 文件名
sed -i "行号i内容" 文件名
部署:
通过函数之间的相互调用实现
(先脚本文件时,先流程图,再脚本)