shell条件测试if和case语句

Posted 谷雨道长

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell条件测试if和case语句相关的知识,希望对你有一定的参考价值。

@[toc]

1.条件测试

test命令

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

格式1: test 条件表达式
格式2: [ 条件表达式 ]

1.文件测试

[ 操作符 文件或目录 ]

常用的测试操作符

2.整数测试

[ 整数1 操作符 整数2 ]

常用的测试操作符

awk用法


bc工具用法

3、字符串比较

格式1 [ 字符串1 = 字符串2 ]
格式1 [ 字符串1 != 字符串2 ]
格式2 [ -z 字符串 ]

常用的测试操作符

常用的测试操作符

= 字符串内容相同
!= 字符串内容不同,!号表示相反的意思
-z 字符串内容为空

4、逻辑测试

格式1:[ 表达式1 ] 操作符 [ 表达式2 ]
格式2:命令1 操作符 命令2
-a或&& 逻辑与,而且的意思
-o或ll 逻辑或,或者的意思
逻辑否

a=4
[ $a -ne 1 ] && [ $a != 2 ] 等同于 [ $a -ne 1 -a $a != 2 ]


5.if语句的结构

1、单分支结构



新建一个 ping.sh判断是否能ping通一个网段,如果能ping通表示online.

2、双分支结构

判断目标主机是否存活,显示检验结果


新建一个 ping.sh判断是否能ping通一个网段,如果能ping通表示online,如果不能ping通表示down.

3、多分支结构


编辑一个考试成绩脚本,要求100分无需抄写,90-99抄写十遍,70-89抄写二十遍,60-69抄写三十遍,60分以下全部抄写30遍。

6.case语句的结构

case多分枝结构


case语句注意事项
==①case行首必须以单词“in”,每一模式必须以单个右括号")"结束==

==②双分号";;"表示命令序列的结束==

==③模式字符串中,可以用方括号表示一个连续的范围,如"[0-9]";还可以使用竖杠|表示或,比如a|b最后的)表示默认模式,其中的相当于通配符==
编辑一个考试成绩脚本,要求100分无需抄写,90-99抄写十遍,70-89抄写二十遍,60-69抄写三十遍,60分以下全部抄写30遍。

以上是关于shell条件测试if和case语句的主要内容,如果未能解决你的问题,请参考以下文章

shell条件测试if和case语句

Shell脚本------条件语句(条件测试,if语句,case语句)

shell编程之条件语句——if与case

if语句 条件测试 shell编程之条件语句

shell 三之if语句以及case 的讲解

Shell条件测试)