Linux系统(七):shell脚本编辑

一、总纲

shell脚本命令工作方式:交互式批处理;交互式,即用户输入一条命令就立即执行;批处理,即由用户事先编写好一个完整的shell脚本,shell会一次性执行脚本中诸多的命令;shell脚本不仅会用到学习过的Linux命令以及正则、管道符、数据流重定向,还需要把内部功能模块化通过逻辑语句进行处理,最终形成shell脚本;

二、简单的脚本编写

其实使用vim编辑器把Linux命令按照顺序依次写入到一个文件中,这就是一个简单的脚本了;

示例:创建一个example.sh文件,里面写3个命令;bash 执行该文件

Linux系统(七):shell脚本编辑

解释:上面截图的第一行脚本声明(#!)用来告诉系统使用哪种Shell解释器来执行该脚本;第二行注释信息(#)是对脚本内容的介绍;

执行结果:

Linux系统(七):shell脚本编辑

除了上面的bash解释器命令直接运行Shell脚本文件外,第二种运行脚本程序的方法是通过输入完整路径的方式来执行。但需要给脚本文件增加执行权限即可;

三、接收用户参数并执行脚本文件

上面截图中,使用的$1,就是引用的bash example.sh example.sh的第一个参数example.sh;如果没有引用参数的命令,直接bash example.sh就执行了脚本文件;下面我们详细说一下,接收用户参数并执行脚本文件

bash 脚本文件 one two three four five six……参数直接使用空格间隔

$0: 当前Shell脚本程序的名称

$#: 总共有几个参数

$*:所有参数的值

$?: 显示上一次命令的执行返回值

$1、$2、$3……则分别对应着第N个位置的参数值;

示例:

Linux系统(七):shell脚本编辑

执行及执行结果:

Linux系统(七):shell脚本编辑

四、判断用户的参数

上面的例子只是简单的接收了参数作了最简单的应用;下面我们需要对参数进行处理;

条件测试语句格式:[ 条件表达式 ]    注意:两边均有一个空格;Linux系统(七):shell脚本编辑

条件测试语句可以分为4种:文件测试语句、逻辑测试语句、整数值比较语句、字符串比较语句

Shell脚本中的条件测试语句可以判断表达式是否成立,若条件成立则返回数字0,否则返回其他随机数值;

文件比较符:

运算符 作用
-d 测试文件是否为目录类型
-e 测试文件是否存在
-f 判断是否为一般文件
-r 测试当前用户是否有权限读取
-w 测试当前用户是否有权限写入
-x 测试当前用户是否有权限执行

文件测试语句单一命令示例:

Linux系统(七):shell脚本编辑

逻辑测试语句示例:(&&,|| ,!)--->与、或、非

Linux系统(七):shell脚本编辑

可用的整数比较运算符

运算符 作用
-eq 是否等于
-ne 是否不等于
-gt 是否大于
-lt 是否小于
-le 是否等于或小于
-ge 是否大于或等于

常见的字符串比较运算符

运算符 作用
= 比较字符串内容是否相同
!= 比较字符串内容是否不同
-z 判断字符串内容是否为空

 

五、流程控制语句

简短解说:if、for、while、case这4种流程控制语句来学习编写更实用的Shell脚本;

5.1 if条件测试语句

格式:if    ……    then    ……fi

意思:如果……那么……

格式:if    ……    then  …… else ……fi

意思:如果……那么……否则……

格式:if    ……    then  …… elif ……then……else……fi

意思:如果……那么……如果……那么……否则……

示例1:

Linux系统(七):shell脚本编辑

执行结果:

Linux系统(七):shell脚本编辑

5.2 for条件循环语句

格式

for 变量名 in 取值列表

do 命令

done

Linux系统(七):shell脚本编辑

5.3 while条件循环语句

Linux系统(七):shell脚本编辑

5.4 case条件测试语句

Linux系统(七):shell脚本编辑

Linux系统(七):shell脚本编辑