shell 条件语句

142 阅读1分钟

条件测试操作

Shell环境根据命令执行后的返回状态值($?)来判断是否执行成功,当返回值为0(真true)时表示成功,返回值为非0值(假false)时表示失败或异常。

test 命令,可以对特定条件进行测试,并根据返回值来判断条件是否成立($?返回值为0表示条件成立)

格式一: test 条件表达式

格式二:[条件表达式] #方括号"["或"]"与条件表达式之间需要至少一个空格进行分隔

文件测试

格式:[操作符 文件或目录]

20220824165639.png

常用的操作符:

-e:测试目录或文件是否存在(Exist)

-d:测试是否为目录( Directory)

-f:测试是否为文件(File)

-r:测试当前用户是否有权限读取(Read)

-w:测试当前用户是否有权限写入(write)

-x:测试是否设置有可执行(Excute)权限

-L:测试是否为符号链接

20220824170650.png

20220824170950.png

整数值比较

格式:[整数变量1 操作符 整数变量2]

常用的操作符:

-eq:等于 ==

-ne:不等于 !=

-gt:大于 >

-ge:大于等于

-lt:小于 <

-le:小于等于

字符串比较

[ 字符串1 = 字符串2 ] 判断是否相等

[ 字符串1 != 字符串2 ] 判断是否不相等

[-z 字符串] 字符串内容为空

逻辑测试

格式1∶ [ 表达式1 ] 操作符 [ 表达式2 ]…

格式2∶ 命令1 操作符 命令2…

常用的测试操作符

-a或&&∶ 逻辑与,"而且"的意思

-o或||∶ 逻辑或,"或者"的意思

!∶逻辑否

20220824171851.png

20220824172332.png

三元运算符

[ 条件表达式 ] && 值1 || 值2 (注意空格格式)

20220824173720.png

编写ping脚本

20220824174735.png

20220824174401.png

if语句

单分支结构

20220824175453.png

实例:

20220824181532.png

20220824181553.png

硬盘挂载的分隔 20220824182535.png

监视磁盘空间脚本文件

20220824183851.png

20220824184005.png

双分支结构 20220824115934.png

80端口是否监听

20220824191228.png

case语句结构

20220824140857.png

实验

20220824193533.png

20220824193654.png