shell编程之条件语句

shell编程之条件语句

条件测试

文件测试与整数测试

test命令

测试表达式是否成立,若成立返回0,不成立返回其他数值

格式一:test 条件表达式

格式二:[ 条件表达式 ]

文件测试

文件测试常用选项:

常见的测试操作符 含义
-d 测试是否为目录(directory)
-e 测试目录或文件是否存在(Exist)
-f 测试是否为文件(File)
-r 测试当前用户是否有权限读取(Read)
-w 测试当前用户是否有权限写入(Write)
-x 测试当前用户是否有权限执行(eXcute
-L 测试是否为软连接文件

示例1:

示例2:

整数值比较

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

常见测试操作符:

操作符 含义
-eq 等于(Equal)
-ne 不等于(Not Equal)
-lt 小于(Leser Than)
-gt 大于(Greater Than)
-le 小于或等于(Lesser or Equal)
-ge 大于或等于(Greater or Equal)

示例:

字符串测试与逻辑测试

字符串比较

格式1:[ 字符串1 = 字符串2 ]

[ 字符串1 != 字符串2 ](这里的!表示取反的意思)

格式2:[ -z 字符串 ]

常用的测试操作符

=:字符串内容相同

!=:字符串内容不同

-z:字符串内容为空

操作符 含义
= 字符串内容相同
!= 字符串内容不同
-z 字符串内容为空

示例:

逻辑测试

格式1:[ 表达式1 ] 操作符 [ 表达式2 ]

格式2:命令1 操作符 命令2 ...

常见的测试操作符

-a或&&:逻辑与,“而且” 的意思

-o 或||:逻辑或,”或者“ 的意思

!:逻辑否

短路与&& 短路或||

示例:

if语句

if单分支语句

格式:
if   条件测试操作
then  命令顺序
fi

示例1:

示例2:


if单分支语句与$$效果一致
如果if后面的条件测试成立则执行then后的命令如果不成立则直接结束判断
[表达式1]&&[表达式2]
如果表达式1成立则执行表达式2如果不成立则不会执行

if双分支语句

格式:
if   条件测试操作
then  命令顺序1
else 命令顺序2
fi分支语句

示例1:

示例2:

示例3:

[root@localhost data]# vim fz.sh


if双分支语句与&& || 效果一致
如果if后面的条件成立则执行then后命令如果不成立则执行else后命令
[表达式1] $$ [表达式2] || [表达式3]
如果表达式1成立则执行表达式2如果不成立则执行表达式3

if多分支语句

格式:
if   条件测试操作1
then  命令序列1
elif 条件测试操作2
then命令序列2
else命令序列3
fi分支语句


示例:判断分数范围,分出优秀、合格、不合格三档

[root@localhost data]# vim fz.sh

示例2:判断当前时间输出不同问好

[root@localhost data]# vim fz.sh

case语句

格式:
case 变量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
*
默认命令序列
esac

注意点:

  • case行首必须以单词“in”,每一模式必须以单个右括号")"结束
  • 双分号";;"表示命令序列的结束
  • 模式字符串中,可以用方括号表示一个连续的范围,如"[0-9]";还可以使用竖杠|表示或。
  • 最后的*)表示默认模式,其中的 * 表示其他

示例:判断分数范围,分出超级棒、优秀、合格、不合格四档

[root@localhost data]# vim yj.sh

示例2:远程连接服务器

[root@localhost data]# vim yj.sh

posted @ 2022-03-29 21:29  GENGBO  阅读(58)  评论(0编辑  收藏  举报