Shell 编程之条件语句

本文详细介绍了Linuxshell中的条件测试(如文件类型检查、字符串比较等)、逻辑运算符(&&,||,!)以及各种分支结构(if,elif,else,case)的使用方法,帮助读者理解和掌握Shell脚本编程基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,条件测试:

     test  条件测试的表达式。

         - e  测试目录或者文件是否存在。

         - d  测试是否为目录。

         - f   测试是否为文件

         - r   测试当前用户是否有读取权限

         - w  测试当前用户是否有写取权限

         - x   测试当前用户是否有读取权限

2,test 比较字符串

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

           只能用于比较整数,不能用于字符串。

         ==  等于    !=   不等于        > 大于     < 小于         <=  小于等于      >=  大于等于

             [  5 -eq   4  ]                 [      -e       ky32    ]                类C语言

             [ [  5  -eq   4   ] ]          双括号更能强大 ,不会出现歧义。语法与但括号一致。

             [ -z $a  ]    -z  判断是否为空。   a = "  "

3,逻辑测试:id

      且     条件测试的条件都要为真。    -a      &&

      或     有一边满足即可。       -o      ||

       !      逻辑否 

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

        [ [ 表达式1    操作符   表达式 2  ] ]   双中括号只能用   &&  ||   表示逻辑且  或者   逻辑或  

        [  表达式1     操作符    表达式2  ]     但括号只能用    - a    - o

4,但分支 :  if [ 条件判断 ]

                       then 

                               echo " ok"

                         fi

      双分支:  if  [ 条件判断 ]

                         then 

                              echo " 满足if 条件执行的语句"

                          else

                               echo " 不满足if 执行的语句 "

                           fi 

        多分支结构:      if  [ 条件1  ]

                                  then    执行条件1的命令

                                 elif  [ 条件2 ]

                                    then   执行条件2的命令序列

                                   else   上述都不满足,执行else命令序列

                                   fi

         if  嵌套         列:   read  -p  "输入一个数:" num

                                       if  [ $num -eq $num ]  &&  [ $num  -ge  0  -a   $num   -le   100 ]

                                        then

                                              echo " 输入正确 "

                                                 if  [ $(($num%2))  -eq   0 ]

                                                       then

                                                            echo "偶数"

                                                   else 

                                                            echo  " 奇数 "

                                                     fi  

                                                 else 

                                                     echo  " 输入的不正确 "

                                                     fi 

        case 多分支结构:   列:  read  -p  " 请输入一个数 "  num

          [ [  $num   -ge   80    &&     $num     -le       100   ] ]        &&     a=" great "

          [ [  $num   -ge   60    &&     $num     -le        79    ] ]        &&     a=" yiban "

          case    $a   in 

          great )

               echo "${a}分,优秀 "

           ;;

          yiban )

               echo  "${a}分,及格 "

           ;;

           * )

                echo  "30 遍 "

           esac          

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值