Shell编程之条件判断语句

目录

一、条件判断

        1、test命令

        2、文件测试

        3、整数值比较

        4、字符串判断

5、逻辑测试

二、if语句

1、if单分支语句

2、双分支语句

3、多分之语句

4、case 分支语句


一、条件判断

        Shell环境根据命令执行后的返回状态值(echo $?)来判断是否执行成功,当返回值为0表示成功或正确,返回值为非0值表示失败或异常。(补充:Linux判断依据在别的编程语言中是反过来的,如java假为0,真为1)

        1、test命令

  有两种方式   

  •          test 条件表达式
  •          [ 条件表达式]     [  ] 相当于test

例子:

0表示成立   其他值表示不成立

        2、文件测试

  •         test 选项 文件/目录路径          test 选项  $变量
  •         [ 选项 文件/目录路径 ]           [ 选项  $变量 ]

     常用的操作符号有

-e测试目录或文件是否存在(Exist)
-d测试是否为目录(Directory)
-f测试是否为文件(File)
-r测试当前用户是否有权限读取(Read)
-w测试当前用户是否有权限写入(Write)
-x测试是否设置有可执行(Excute)权限。
-L测试是否为符号链接

        例子

-e

-d

-r

-w

-x

-L

        3、整数值比较

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

        常用的操作符

-eq等于
-ne不等于
-gt大于
-lt小于 
-le小于等于
-ge大于等于

例子

-eq

-ne

-gt

-lt

-le

-ge

        4、字符串判断

        格式

  •         test "字符串1" == "字符串2" 
  •          [ "字符串1" == "字符串2" ]

例子

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

例子

  •         test -z "字符串"      test -z "$变量"   [ -z "$变量" ]     #判断字符串或变量是否为空
  •         test -n "字符串"      test -n "$变量"   [ -n "$变量" ]     #判断字符串或变量是否有字符串

例子

5、逻辑测试

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

常用操作符 -a或者&&  而且的意思

                 -o或者 ll  或者的意思

                     !: 逻辑  fou  !代表取反

  •         [ 表达式1 ] && [ 表达式2 ] ;[ 表达式1 -a 表达式2 ] ;[[ 表达式1 && 表达式2 ]]

也可以这样表达

或者的意思

!取反

二、if语句

1、if单分支语句

测试1

判断  a=1  b=2   如果b大于a 说明对的

2、双分支语句

格式

        if [ 条件判段语句]

        then

        echo “ xxxx”

        else

        echo "xxxx"

3、多分之语句

格式:

        if [ 条件表达式]

then

        echo "xxxxx"

elif [ 条件表达式]

then

echo " xxxx"

elif [ 条件表达式]

then

echo " xxxx"

else

echo "xxxx"

例子

4、case 分支语句

        

  • 19
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值