一、脚本的作用
批量处理、自动化地完成一系列维护任务、减轻管理负担。
二、什么是脚本
将平时使用的各种Linux 命令按顺序保存到一个文本文件,然后添加可执行权限
例:
1)新建一个脚本文件first.sh
2)添加可执行权限
上述firsh.sh 脚本文件中,包括三条命令:cd /boot/ ,pwd , ls -lh vml*。执行此脚本文件后,输出结果与依次单独执行这三条命令是相同的,从而实现了“批量处理”的自动化过程。
三、脚本的基本格式
一个合格的shell脚本程序应该遵循标准的脚本结构,而且输出友好的提示信息,更加容易读懂。对于代码较多,结构复杂的脚本,应添加必要的注释文字。
1)脚本声明
2)注释信息
3)可执行语句
4)输出友好的提示信息
例:
执行后的输出结果:
四、执行脚本文件的方式
1)脚本文件路径(脚本文件必须有X权限)
2)sh脚本文件路径(不需要X权限)
3)source脚本文件路径(不需要X权限)
五、重定向与管道操作
1)重定向输出
操作符:">" 覆盖文件
">>"追加文件
例:覆盖文件
例:追加文件
2)重定向输入
操作符:"
例:自动完成密码设置
3)错误重定向
操作符:"2>"
例:
4)混合输出
操作符:"&>"
将标准输出、标准错误输出同事保存到指定文件中
5)管道操作"|"
作为不同命令之间协同工作提供了一种机制,位于管道符号"|" 左侧的命令输出的结果,将作为右侧命令的输入(处理对象),同一行命令中可以使用多个管道
例1:
六、变量的引用
1)双引号("):允许通过$符号引用其他变量值
2)单引号('):禁止引用其他变量,即使有$,视为普通字符
3)反撇号(`):命令替换,提取命令执行后的输出结果,等同于$()
4)大括号({}):当变量和后面的字符容易出现混淆时永大括号隔开
5)read命令:提示用户输入信息,从而实现简单的交互过程
6)设置变量的作用范围
默认情况下,新定义的变量只在当前的shell 环境中有效,因此成为局部变量。当进入子程序或新的子shell 环境时,局部变量将无法再使用。
例:
全局变量设置:export 变量名
例:
7)数值变量的运算
格式:expr 变量1 运算符 变量2 【运算符 变量3】……
运算符
+ 加法运算
- 减法运算
\* 乘法运算
/ 除法运算
% 求模运算(又称为取余运算)
例:
七、特殊的shell变量
1)环境变量:env命令查看当前工作环境下的环境变量
常见的环境变量
USER 用户名称
HOME 用户的宿主目录
LANG 语言和字符集
PWD 当前所在的工作目录
PATH 命令搜索路径
环境变量的全局配置文件为/etc/profile 在此文件中定义的变量作用于所有用户。
每个用户拥有自己的独立配置文件~/.bash_profile
2)位置变量
当执行命令操作时,第一个字段表示命令名或脚本程序名,其余的字符串参数按照从左到右的顺序依次赋值个位置变量
位置变量也成为位置参数,使用$1,$2,$3,……表示
例:以下脚本中$1=10 $2=11
3)预定义变量
$# 表示命令行中位置参数的个数
$* 表示所有位置参数的内容
$? 表示前一条命令执行后的返回状态,返回值为0表示执行正确,非0表示异常
$0 表示当前执行的脚本或程序的名称
例:自动备份文件脚本
执行后的结果