- 第一章 shell脚本的基础
1.什么是shell脚本:
2.shell脚本的作用: 重复性操作、批量事物处理、自动化运维、服务运行状态监控、定时任务执行
3.shell脚本格式: 1.#!开头,后面跟上使用什么解释器来对脚本内容进行解析,一般使用/bin/bash
4.脚本的执行方式: 4.1 没有执行权限 使用bash或者sh 后面根脚本名称
使用source或者.(点) 后面根脚本名称
4.2 有执行权限 使用绝对路径或者相对路径执行
5.脚本的格式: 1.创建脚本文件(以.sh结尾)
2.写脚本
3.检测语法错误
4.执行
6.管道与重定向: 管道: 1.管道符 |
2.管道符的作用:
重定向:改变输入输出的方式
重定向分类: 重定向输入,重定向输出,错误重定向
重定向输入: 由默认的键盘输入,变更为文件输入
重定向输入的使用方式: 命令 选项 参数 < 重定向输入的文件名称
重定向输出: 默认输出结果在显示器显示,变更为存入到文件中
重定向输出的使用方式: 命令 选项 参数 >或者>> 文件名称
重定向错误: 默认错误的输出结果在显示器显示,变更为存入到文件中
重定向错误的使用方式:命令 选项 参数 2>或者2>> 文件名称
不论正确的还是错的都输出到指定文件: &>
7.变量的解释: 7.1什么是变量:shell 传递数据的一种方法
7.2变量的作用:将整数值或者字符串值进行变量,然后存储到内存中,脚本在使用中可以调取变量值进行执行操作
- 变量的设置规则:
8.1 变量名可以由字母 数字 下划线组成,但是不能以数字开头
8.2 =(等于号) 等于号的左边为变量名称,右边为赋值,等号两边不能有空格
8.3 变量存储的数据类型是整数值和字符串值
8.4 在对变量赋于字符串值时,建议大家用引号将其括起来,需要使用单引号或双引号
8.5 要对变量进行调用,可以在变量名称前加美元符号$
8.6 如果需要增加变量的值,那么可以进行变量值的叠加。不过变量需要用双引号包含“$变量名”或用${变量名}包含
9. 变量的分类:自定义变量 环境变量 位置参数变量 预定义变量
10.自定义变量: 1.给字符串赋值时要把字符串使用””或者’’
2.命令替换时使用$()或者` `(反引号)
3.单引号和双引号的区别 3.1 单引号是将里面的内容作为一个整体字符串,如果有特殊符号表示的特殊含义则将特殊含义取消,变成普通的字符
3.2 双引号会保留特殊符号的特殊含义
11.环境变量: 11.1分类: 全局变量和局部变量
11.1.1 全局变量:对所有shell生效
11.1.2 局部变量:对设置的shell生效
11.2 局部变量转换为全局变量 export 变量名=整数值或者字符串值
11.3 删除变量 unset 变量名
- 位置变量
用$N表示
例:echo “脚本名称:$0”
… $1
… $2
- 特殊变量
预定义变量:不能修改,已经设定的
$* 表示所以输出的参数
$# 表示参数的个数
$@ 表示与$*相同,但输出结果不同
$* 是将所有输出 “整体” 输出
$@ 是将所有输出 “依次” 分开输出
$$ 进程号PID
$? 显示退出状态,0没有错误,其任意有误
$! 最后进程号PID
- 数学运算
expr命令、双括号(())、let、方括号[]、浮点运算bc
3.1 expr只念运算简单的整数,运算之间加空格
expr length 统计字符串长度
expr substr ‘zifuchuan’ 起始位置 截取长度
3.2 双括号(())
++ -- a++等同于a=a+1 a--等同于a=a-1
+ - \* / % 加 减 乘 除 余数
\< \<= \> \>= 小于 小于等于 大于 大于等于
== != 等于 不等于
&& || ! 与 或 非
? : 正确取值:左边的数值,错误取直:右边的数值
3.3 方括号[] 在括号内 “+-*?/” “数字” 进行运算
3.4 浮点运算bc
可以指定小数点位数:scale=位数
调试:-n 只读取shell脚本,但不实际执行
-x 进入跟踪方式,显示所执行的每一条命令