shell的功能性(测试)语句-->test

test:
test语句可以测试三种对象
字符串 整数 文件
test 测试成功 返回 0
测试不成功 返回 1

  1. test测试字符串
  1. = 测试两个字符串内容是否一致

若内容一致则返回0,否则返回1

这里注意:判断时使用单个等号;等号两边需要有空格

  1. != 测试两个字符串是否不一致

若内容一致则返回1,否则返回0

  1. test -z 测试字符串是否为空

若字符串为空则返回0,否则返回1

  1. test -n 测试字符串是否不为空

若字符串为空则返回1,否则返回0

  1. ${var}x 防止字符串为空

上图中,按照规则test -n 判断str是否不为空,应当测试失败返回1,但是shell认为未给值,因此导致判断失误

可以看到,对输入的var1与未给值的var2两个变量进行两次对比:

test var1 = var2
test ${var1}x = ${var2}x

第一次对比,无论输入空格还是字符串都返回1,第二对比却能识别未给值的var2


  1. test测试整数
a -eq b     equal测试两个整数是否是相等的         ==
a -ne b     not equal测试两个整数是否不相等      !=

a -gt b     greater than     >
a -ge b     greater equal    >=
a -lt b     litter than      <
a -le b     litter equal     <=
  1. test测试文件
test +

-d filename 测试filename是否为目录            (directory)
-f filename 测试filename是否为普通文件         (file)
-l filename 测试filename是否为链接文件        (link)
-r filename 测试filename是否存在并且可读        (read)
-w filename 测试filename是否存在并且可写        (write)
-x filename 测试filename是否存在并且可执行       (execute)
-s filename 测试filename是否存在并且长度不为0    (size)
f1 -nt f2   测试f1是否比f2更新 nt newer than
f1 -ot f2   测试f1是否比f2更旧 ot older than
  1. test简写形式

test命令可以用[]来简写,但是,命令与中括号之间需要有空格

test expression <==> [ expression ]
test ${var1} = ${var2}    ==>    [ ${var1} = ${var2} ]
  1. test的组合-->符合表达式

组合两个或两个以上的表达式称为符合表达式,为了使用符合表达式,你可以用test([])内置的操作符,也可以用条件操作符。

#实现5>4>3
#用内置操作符 
#-a==>and
#-o==>or
test 5 -gt 4 -a 4 -gt 3
#用条件操作符
[ 5 -gt 4 ] && [ 4 -gt 3 ]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值