Shell脚本之条件语句

  • 来源:网络
  • 更新日期:2020-07-11

摘要:系统运维 条件测试 1、文件测试2、整数测试3、字符串与逻辑测试 if语句: if单分支语句if双分支语句if多分支语句if嵌套语句 test命令:

系统运维 条件测试

1、文件测试
2、整数测试
3、字符串与逻辑测试

if语句:

if单分支语句
if双分支语句
if多分支语句
if嵌套语句

test命令:
测试特定的表达式 是否成立,当条件成立时,测试语句的返回值为0,否则为其他数值。

格式1:test 条件表达式
格式2:[ 条件表达式 ] //注意有空格

文件测试

文件测试是指的是根据给定的路径名称,判断对应的是文件还是目录,或者判断文件是否可读、可写、可执行等。

常用的测试操作符:

-d:测试是否为目录(Directory)
-e:测试目录或文件是否存在(Exist)
-f:测试是否为文件(File)
-r:测试当前用户是否有权限读取(Read)
-w:测试当前用户是否有权限写入(Write)
-x:测试当前用户是否有权限执行(eXcute)

实际操作:
格式一:

test -d /etc/sysconfig (测试/etc里的sysconfig目录是否存在)
echo $?(输出值为0,则条件成立)

格式二:

[ -d /etc/sysconfig ]
echo $?(输出值为1,则条件不成立)

整数值比较:
格式:[ 整数1 操作符 整数2 ]
常用的测试操作符:

-eq:等于(Equal)
-ne:不等于(Not Equal)
-gt:大于(Greater Than)
-lt:小于(Lesser Than)
-le:小于或等于(Lesser or Equal)
-ge:大于或等于(Greater or Equal)

字符串比较

格式1:[ 字符串1 = 字符串2 ]
[ 字符串1 ! = 字符串2 ]
格式2:[ -z 字符串]
常用的测试i操作符:
=:字符串内容相同
!=:字符串内容不同,!表示相反的意思
-z:字符串内容为空

逻辑测试

格式1:[ 表达式1 ] 操作符 [ 表达式2 ] ...
格式2:命令1 操作符 命令2 ...
常用操作选项
-a或&&:逻辑与,“而且”的意思
-o或||:逻辑或,“或者”的意思
!:逻辑否,表示“不”的意思

if语句:

单分支结构:

if 条件测试操作
then
命令序列
fi

双分支结构:

if 条件测试操作
then
命令序列1
else
命令序列2
fi

多分支结构:

if 条件测试操作
then
命令序列1
elif 条件性测试操作2
then
命令序列2
else
命令序列3
fi

if嵌套语句:

实验目的:进行跑步比赛,10秒内进入决赛,输入性别后,分别提示进入男子组还是女子组,使用多重判断,嵌套if实现

新网虚拟主机