Shell脚本的基本概念
- 将要执行的命令按照顺序保存到一个文本文件
- 给该文件可执行权限,便可运行
- 可结合各种Shell控制语句以完成更复杂的操作
Shell脚本应用的场景
- 重复性操作
- 批量事务处理
- 自动化运维
- 服务运行状态监控
- 定时任务执行
- …
Shell的作用——命令解释器,充当“翻译”的角色
- 介于系统内核与用户之间,负责解释命令行
用户的登录Shell
- 登录后默认使用的Shell程序,一般在 /bin/bash
- 不同Shell的内部指令、运行环境等会有所区别
编写Shell脚本
编写脚本代码
- 使用vi文本编辑器
- 每行一条Linux命令,按执行顺序依次编写
例如
[root@localhost ~]# vi first.sh
cd /boot/ 进入boot目录
pwd 查询绝对路径
ls -lh vml* 长格式显示vml*开头的所有文件
赋予可执行权限
- 使脚本具有可执行属性
执行脚本文件
./ 脚本文件路径 (必须有"x"执行权限)
sh 脚本文件路径
source 脚本文件路径
重定向与管道操作
交互式硬件设备
- 标准输入:从该设备接收用户输入的数据
- 标准输出:通过该设备向用户输出数据
- 标准错误:通过该设备报告执行出错信息
重定向操作
管道操作符号"|"
将左侧的命令输出结果,作为右侧命令的处理对象
格式
命令1 | 命令2
Shell变量的作用、类型
变量的作用
变量名:使用固定的名称,由系统预设或用户自定义
变量值:能够根据用户设置、系统环境的变化而变化
变量的4个类型
自定义变量:由用户自己定义、修改和使用
定义一个新的变量
变量名是以字母或下划线为开头,区分大小写,建议全部大写
变量名=变量值
查看变量的值
echo $变量名
环境变量:由系统维护,用于设置工作环境
赋值时使用引号
双引号:允许通过$ 符号引用其他变量值
单引号:禁止引用其他变量值,$视为普通字符
反撇号:命令替换,提取命令执行后的输出结果
从键盘输入内容为变量赋值
read [-p "提示信息"] 变量名
设置变量的作用范围
格式1:export 变量名...
格式2:export 变量名=变量值
整数变量的运算
expr 变量1 运算符 变量 [运算符 变量3]...
常用运算符
加:+
减:-
乘:\*
除:/
余:%
环境变量
由系统提前创建,用来设置用户的工作环境
配置文件
/etc/profile
~/.bash_profile
常见的环境变量
PWD、PATH
USER、SHELL、HOME
位置变量:通过命令行给脚本程序传递参数
表示为$n,n为1~9之间的数字
预定义变量:Bash中内置的一类变量,不能直接修改
$#:命令行中位置变量的个数
$*:所有位置变量的内容
$?:上一条命令执行后返回的状态,当返回状态值为0时表示执行正常,非0值表示执行异常或错
$0:当前执行的进程/进程名