一、定义
将某条命令或许多条命令按照某种规则执行结束。
二、规范
2.1 首行规范
#!/bin/bash #首行书写规范,表示调用shell解释器 • 1 • 2
2.2 执行方式
- 路径执行:需要有执行权限方可执行
- 解释器执行:不需要权限也可执行
2.3 脚本错误
- 命令错误:不会影响接下来的命令执行
- 语法错误:会影响到接下来的命令执行
- 逻辑错误:需手动排查故障(bash -x 脚本)
三、参数
3.1 变量分类
3.1.1 内置变量
- $PATH :可执行命令的默认路径
- $UID :当前用户UID号
- $HOSTNAME :当前用户主机名
- $USER :当前用户名
3.1.2 预定义变量
- $? :返回上次命令执行状态(0:成功;非0:失败)
- $0 :代指当前脚本本身
- $* :将脚本变量作为整体返回
- $@ :将脚本变量作为个体返回
- $# :脚本变量的总个数
3.1.3 位置变量
- 命令后方对应位置所对应的变量
3.1.4 环境变量
- 在所有bash环境中都能适用的变量
3.1.5 只读变量
- 只能读取,无法更改的变量
3.1.6 自定义变量
- 自行设定变量名的变量
3.2 变量赋值
#!/bin/bash #首行标准格式 变量=值 #将值赋予变量 变量=`命令` #将命令执行的结果作为值赋予变量 变量2="变量1" #可识别变量1的值,并将变量1的值赋予变量2 变量2='变量1' #无法识别变量1的值,会将变量1本身作为值赋予变量2 变量2={变量1} #能够精确定位变量1的字符范围,防止出现逻辑错误 read -p "提示字符" 变量 标准输入:值 #将值赋予变量
3.3 特殊符号
3.3.1 连接符
- -a :连接符且
- && :连接符且
- -o :连接符或
- || :连接符或
3.3.2 重定向
- > :重定向输入
- < :重定向输出
- >> :重定向追加输入
3.3.3 管道符
- | :管道符,将左边命令的结果作为右边命令的参数
3.4 数学运算
3.4.1 数学运算符
- [ ] :可执行简单的数学运算
- (( )) :可执行简单的数学运算
- expr :可执行简单的数学运算
- let :可执行简单的数学运算
- 简单的数学运算:加 + ;减 - ;乘 \* ;除 / ;求余 % ;大小比较;
3.4.2 比较符号
- -eq :等于
- -ne :不等于
- -gt :大于
- -ge :大于等于
- -lt :小于
- -le :小于等于
3.5 文件管理
3.5.1 文件测试(test)
test 选项 文件:测试文件的属性
- -d :测试文件是否为目录
- -e :测试文件是否存在(取反为测试文件是否不存在)
- -a :测试文件是否存在(取反容易出现问题)
- -r :测试文件是否可读
- -w :测试文件是否可写
- -x :测试文件是否可执行
3.5.2 内容查找(grep)
grep 选项 条件 文件:查找显示文件内符合条件的内容
- -i :忽略大小写
- -v :取反查找
- -o :只显示匹配项
- -f :对比两个文件相同行
- -c :显示匹配的行数
3.5.3 内容提取(awk)
awk 选项 文件 变量:提取文件中对应列的内容(常搭配grep使用)
- 无 :默认以空格为分割符
- -F 指定 :指定列与列之间的分隔符
四、语句
4.1 判断语句( if )
4.1.1 单分支判断
#!/bin/bash #首行标准格式 #单分支判断 if 判断条件 then 命令 #判断条件为真时,执行该命令 fi