十七、条件测试

        Shell中的条件测试非常重要,尤其在编写shell脚本中尤其如此,如有时要判断字符串是否相等,可能还要检查文件状态或是数字测试,基于这些测试才能做进一步动作等等,那下面开始这一章的内容

              ◆  test:用于测试文件状态,字符串和数字,也很适合if、then、else条件结构

              ◆ expr:常用于数字、字符串等、及测试和执行数值输出,使用最后退出状态命令

              ◆  $?  :可测知test和expr,二者均以0表示正确,1表示返回错误

 

一、test命令
           1、 测试文件状态
                     ·格式:test condition 或 [ condition ]
                 · condition

                    -d 目录
                    -s 文件长度大于0、非空
                    -f  正规文件
                    -l  符号连接
                    -u 文件有s u i d位设置
                    -r 可读
                    -w 可写
                    -x 可执行
                · 例子

                      test -d /opt 或 [ -d /opt ]   =>判断/opt目录是否存在,如echo $? 则返回0,否则返回1

 

           2、字符串测试
               ·格式
:test "string" string_operator "string" 或 [ "string" string_operator "string" ]
               ·string_operator 可为
                   = :两个字符串相等
                  != :两个字符串不相等
                  -z :空串
                  -n :非空串

               ·例子

                  [ -n "abc" -a "abc" != "Abc"]   =>  返回真


            3、数值测试

                 ·格式:test number number_operator number 或 [ number number_operator number ]
               ·number_operator 可为:
                   -eq 数值相等
                   -ne 数值不相等
                   -gt  第一个数大于第二个数
                   -lt   第一个数小于第二个数
                   -le  第一个数小于等于第二个数
                   -ge 第一个数大于等于第二个数

                ·例子

                   [ "12" -le "15" ] ; echo $? => 返回真

 

           4、 测试时使用的逻辑操作符
                 ·-a 逻辑与,操作符两边均为真,结果为真,否则为假
                 ·-o 逻辑或,操作符两边一边为真,结果为真,否则为假
                 ·!   逻辑否,条件为假,结果为真

                 例子

                 [ -d /opt -a -w /opt/a.sh ]  当/opt目录存在,且/opt/a.sh文件可写时,返回真,否则返回假

 

二、expr
        ·格式: expr argument operator argument
        ·expr也是一个手动命令计数器

        ·例子:

# expr 12+3 => 12+3
# expr 12 + 3 => 15
# expr 12 \* 3 => 36

#判断字符串是否相等,结果为真,返回1  <与test不同>
# expr "a" = "a" => B=`expr 1 + 1`
# echo $B => 2

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值