Shell中的内置命令--test

1.概念及用法

  • test 是Shell内置命令,用来检测某个条件是否成立
  • test通常和if语句一起使用,并且大部分if语句都依赖test
  • test命令有很多选项,可以进行数值、字符串和文件三个方面的检测
  • Shell test命令的用法为:test expression
  • 当test判断expression成立时,退出状态为0,否则为非0值
  • test命令也可以简写为【】,它的用法为:[ expression ]
  • 注意: 【】和expression之间的空格,这两个空格是必须的,否则会有语法错误
  • 【】的写法更加简洁,使用率更高

2.test可以判断3类条件(数值比较)

  • 数值条件测试可以用在数字和变量上
比较描述
n1-eq n2检查n1是否与n2相等
n1-ge n2检查n1是否大于或等于n2
n1-gt n2检查n1是否大于n2
n1-le n2检查n1是否小于或等于n2
n1-lt n2检查n1是否小于n2
n1-ne n2检查n1是否不等于n2
  • 示例
    在这里插入图片描述
  • 不能在test命令中使用浮点值
    在这里插入图片描述

3.test可以判断3类条件(字符串比较)

比较描述
str1 = str2检查str1与str2相同
str1 != str2检查str1与str2不同
str1 < str2检查str1是否比str2
str1 > str2检查str1是否比str2
-n str1检查str的长度是否为非0
-z str检查str的长度是否为0
  • 比较字符串相等性的时候,test的比较会将所有的标点和大写也考虑在内
  • 示例1
    在这里插入图片描述
  • 示例2
  • $USER #获取当前用户
    在这里插入图片描述
  • 示例3
    在这里插入图片描述
  • 示例4
  • a3在测试中未被定义,但是测试结果依然为空
  • 未被定义的变量在测试中会被认为为空
  • 空和未初始化的变量对于shell脚本测试来说,有致命的影响,如果你不确定一个变量的内容,最好在数值或字符串比较中使用-n和-z来测试下这个变量是否含有值
    在这里插入图片描述

4.test可以判断3类条件(文件比较)

比较描述
-d file是否存在并为一个目录
-e file是否存在
-f file是否存在并为一个文件
-r file是否存在并可读
-s file是否存在且非空
-w file是否存在并可写
-x file是否存在并执行
-o file是否存在并属当前用户所有
-G file是否存在并默认组与当前用户相同
file1 -nt file2file1是否比file2
file1 -ot file2file1是否比file2
  • 示例1
    在这里插入图片描述
  • 示例2
    在这里插入图片描述
  • 示例3
    在这里插入图片描述

5.符合条件测试

  • if-then语句允许使用布尔逻辑来组合测试,有两种布尔运算符可用:
  • [ condition1 ] && [condition2 ]
  • [ condition1 ] || [condition2 ]
  • 示例
    在这里插入图片描述

6.if-then的高级特性

  • 使用双尖括号(())
  • 使用方括号
  • 表示通配
  • 示例
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值