Shell中的条件测试

  有时判断字符串是否相等或检查文件状态或是数字测试等。Test命令用于测试字符串,文件状态和数字。

文件状态测试

  • 格式 test condition filename 或 [ condition filename ]
  • 使用方括号时,要注意在条件两边加上空格。
  • 文件测试状态 :测试的结果可以用$?的值来判断,0表示成功,其他为失败
选项说明
-e是否存在某个文件或者目录
-d是否是目录
-s文件长度大于0、非空
-f正规文件
-w可写
-L符号链接 、
-u文件有suid位设置
-r可读
-x可执行
-z字符串为空
#!/bin/bash
echo "test use 1"
test -w tmp.txt
echo $?
echo "test use 2 [] begin"
[ -w tmp.txt ]
echo $?
  • 多个条件组合起来测试,就是说操作符两边都是test condition filename 或 [ condition filename ]
选项说明
-a逻辑与,操作符两边均为真,结果为真,否则为假。
-o逻辑或,操作符两边一边为真,结果为真,否则为假。
!逻辑否,条件为假,结果为真。
  • 测试xac是否可执行或者xab是否可写,使用逻辑或操作
    这里写图片描述

字符串测试

  • 格式(也是两种格式–test和中括号):
    这里写图片描述

  • 使用方括号时,要注意在条件两边加上空格。

  • 测试两个字符是否相等。退出状态变量 $?,0表示成功,1表示失败。
  • string_operator 说明
string_operator说明
=两个字符串相等
!=两个字符串不等
-z空串
-n非空串
  • 测试环境变量是否为空
    这里写图片描述

  • 测试字符串是否相等
    这里写图片描述

测试数值

  • 格式:

    • "number" numberic_operator "number"
    • [ "number" numberic_operator "number" ]
    • 注意数字两端有双引号
    • 注意中括号两端需要有空格
  • numberic_operator说明

numberic_operator说明
-eq数值相等。
-ne数值不相等。
-gt第一个数大于第二个数。
-lt第一个数小于第二个数。
-le第一个数小于等于第二个数。
-ge第一个数大于等于第二个数。

这里写图片描述

expr数字运算

用来计算表达式的值,参与运算的必须是数字,否则会报错!利用此点可以用来测试数字格式。

使用乘号时也要用反斜线屏蔽其特殊意义
运算符两边需要有空格!!!

加法运算:expr 10 + 10
减法运算:expr 20 - 10
加法运算:expr 10 / 5
乘法运算:expr 10 \* 5
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值