【Shell脚本】Shell编程之条件语句

目录

一.条件测试

1.test命令

1.1.test命令是内部命令

1.2.格式一

1.3.格式二

2.文件测试

2.1.常用的测试操作符

3.整数值测试

3.1.常用的测试操作符

3.2.格式一

3.3.格式二

4.字符串比较

4.1.格式一

4.2.格式二

注意:

5.逻辑测试

5.1.常用的测试操作符

5.2.格式一

5.3.格式二

5.4.格式三

5.5.三元运算符

二. if 语句

1.单分支结构

2.双分支结构

3.多分支结构

三.case语句结构

1.case多分支结构


一.条件测试

1.test命令

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

1.1.test命令是内部命令

1.2.格式一

test 条件表达式

1.3.格式二

[ 条件表达式 ]

2.文件测试

[ 操作符 文件或目录 ]

2.1.常用的测试操作符

操作符作用

-e

测试指定的文件或者目录是否存在

-f

测试指定对象是否为文件;指定的文件是否存在

-d

测试指定对象是否为目录;指定的目录是否存在

-r

测试指定用户是否有权限

-w

测试当前用户是否有权限

-x

测试当前用户是否有执行权限

-L

测试文件是否为符号链接(软链接文件)

3.整数值测试

3.1.常用的测试操作符

操作符含义

-eq

等于

-ne

不等于

-gt

大于

-ge

大于等于

-lt

小于

-le

小于等于

3.2.格式一

test 整数1 操作符 整数2

3.3.格式二

[ 整数1 操作符 整数2 ]

提示:以下省略test格式

4.字符串比较

4.1.格式一


[ 字符串1 = 字符串2 ]                  判断两个字符串是否相同

[ 字符串1 != 字符串2 ]                 判断两个字符串是否不相同

[[ 字符串1 =~ 字符串2 ]]               判断是否包含

4.2.格式二

[ -z  "字符串" ]                         检查字符串是否为空(zero),对于未定义或赋予 
                                         空值的变量将视为空串

[ -n  "字符串" ]		                     检查是否有字符串存在

注意:
  • -z 后面字符串可以不带双引号
  • -n 后面字符串需要带双引号
  • 所以字符串判断最好都加上双引号

5.逻辑测试

5.1.常用的测试操作符

操作符符号名称解释
-a&&逻辑且(而且)前后条件都要成立
-o||逻辑或(或者)只需前后条件中一个成立
逻辑否否定

5.2.格式一

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

5.3.格式二

命令1  操作符  命令2

5.4.格式三

 [[ 表达式1 符号 表达式2 ]] 

5.5.三元运算符

[ 表达式1 ] || 命令1              如果表达式1条件成立不会执行或运算符后面的命令1,如果表达      
                                  式1条件不成立则会执行或运算符后面的命令1

[ 表达式1 ] && 命令1 || 命令2     如果表达式1条件成立则执行命令1,如果表达式1条件不成立则       
                                 命令2

[ ! 表达式1 ]                     取反,如果表达式1条件成立则最终结果为条件不成立

二. if 语句

1.单分支结构

if 条件测试操作

then

命令序列

fi

2.双分支结构

if 条件测试操作

then

命令序列 1

else

命令序列 2

fi

3.多分支结构

    if [ 表达式 ];then
        语句1
    elif [ 表达式 ];then
        语句2
    elif [ 表达式 ];then
        语句2
    fi

[root@localhost lx]# vim score.sh
[root@localhost lx]# chmod +x score.sh
[root@localhost lx]# ./score.sh 
请输入分数: 150
牛逼!!!

三.case语句结构

1.case多分支结构

case 变量值 in
模式 1)
命令1
;;
模式 2)
命令2
;;
.....(可以添加多个条件)
esac       这就是case的反过来的字母

[root@localhost lx]# vim score2.sh
[root@localhost lx]# bash score2.sh
快点给我填分数: 189
189 分,sss!

  • 19
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值