07 Shell_test命令(条件测试)_适合小白的学习笔记

Shell_test命令(条件测试)

 

1.语法格式:

test experssion     #当test判断expression成立时,退出状态为0,否则为非0值。

或者:
[ experssion ]     #[]和expression之间必须空格,否则会导致语法错误。

 

2.测试类型:

(1)数值测试(关系运算符):

  • -gt:是否大于
  • -ge:是否大于等于
  • -eq:是否等于
  • -ne:是否不等
  • -lt:是否小于
  • -le:是否小于等于

注意:test只能用来比较整数,小数相关的比较还得依赖bc命令

 

(2)字符串测试(字符串运算符):

  • str1 = str2:是否等于     #=和==是等价的,也可写成str1 == str2
  • str1 \> str2:是否大于     #\>是>的转义字符,防止>被误认为成重定向运算符。
  • str1 \< str2:是否小于
  • str1 != str2:是否不等于
  • str1 =~ str2:左侧字符串是否能被右侧的Pattern匹配
  • -z str:字符串的长度为零则为真,非零则为假
  • -n str:字符串的长度非零为真,为零则为假

注意:大部分编程语言中都可以使用>、<、=来比较数字,但在shell中,只可以用来比较字符串,不可用来比较数字。不管是比较数字还是字符串,Shell都不支持>=和<=运算符。且在字符串测试中多使用[]来代替test。

 

(3)文件测试(文件测试运算符):

① 简单存在性测试:

  • -a file:文件存在则为正,不存在则为假

② 存在及类型测试:

  • -b file:文件是否存在且为块设备文件
  • -c file:文件是否存在且为字符设备文件
  • -d file:文件是否存在且为目录文件
  • -f file:文件是否存在且为普通文件
  • -e file:文件是否存在
  • -h file:文件是否存在且为符号链接文件(-L也可以)
  • -p file:文件是否存在且为管道文件
  • -S file:文件是否存在且为socket套接字文件

③ 文件权限测试:

  • -r file:文件是否存在且拥有可读权限
  • -w file:文件是否存在且拥有可写权限
  • -x file:文件是否存在且拥有可执行权限

④ 文件特殊权限测试:

  • -u file:文件是否存在且拥有SUID权限
  • -g file:文件是否存在且拥有SGID权限
  • -k file:文件是否存在且拥有SBIT权限

⑤ 文件大小测试:

  • -s file:文件是否存在且为非空

⑥ 文件是否打开测试:

  • - fd : fd:表示文件爱你描述是否已经打开且与终端相关
  • -N file:文件自动上一次读取之后是否被修改过
  • -O file:当前用户是否为文件属主
  • -G file:当前用户是否为文件数组
 

(4)逻辑测试(逻辑运算符):

  • &&:全真则为真
  • ||:有真则为真
 

(5)布尔测试(布尔运算符):

  • -a:或运算,有一个表达式为true则返回true
  • -o:与运算,两个表达式都为true才返回true
  • !:非运算,表达式为true则返回false,否则返回true
 

(6)双目测试:

  • file1 -ef file2:file1与file2是否指向同一个设上的相关inode
  • file1 -nt file2:file1是否新于file2
  • file1 -ot file2:file1是否旧于file2
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值