bash条件测试

1、 条件测试命令:

1. test 条件表达式
2. [ 条件表达式 ]
3. [[ 条件表达式 ]]
4. (( 整数比较条件表达式 ))

shell中 true 对应 0 , false对应1
man test 可以查看测试命令帮助

2、测试表达式

2.1、 文件测试: [ 操作符 文件 ] 或 [ file1 操作符 file2 ]

常用测试文件表达式:

表达式 功能
-e FILE 文件存在
-d FILE 文件是个目录
-f FILE 文件是一个常规文件
-c FILE 文件是个字符设备
-b FILE 文件是个块设备
-g FILE sgid到文件
-G FILE 文件gid和当前用户gid相同
-h FILE or -L FILE 文件是个链接文件
-O FILE 文件属于当前用户
-p FILE 文件是个管道
-r FILE 当前用户对文件有读权限
-s FILE 文件长度不为0
-S FILE 文件是个socket
-t FD 在终端上打开文件描述符;一般用来检测是否在一个给定脚本中的 stdin[-t0]或[-t1]是一个终端
-u FILE suid标志到文件
-w FILE 当前用户对文件有写权限
-x FILE 当前用户对文件有执行权限
FILE1 -ef FILE2 file1和file2都硬链接到同一个文件
FILE1 -nt FILE2 file1比file2新(文件修改时间)
FILE1 -ot FILE2 file1比file2老
[root@centos6 test2]# ll
总用量 8
-rw-r--r--. 1 root root    4 12月  4 15:29 aa.txt
drwxr-xr-x. 2 root root 4096 12月  4 15:29 dir1
[root@centos6 test2]# 
[root@centos6 test2]# [ -d dir1 ]; echo $?
0
[root@centos6 test2]# [ -d aa.txt ]; echo $?
1
[root@centos6 test2]# 
[root@centos6 test2]# [ -f aa.txt ]; echo $?
0
[root@centos6 test2]# 
[root@centos6 test2]# [ -f dir1 ]; echo $?
1
[root@centos6 test2]# 

2.2、整数比较(不能小数比较): [ int1 操作符 int2 ]

操作符标示:

操作符 描述
-eq 等于
-ne 不等于
-ge 大于等于
-gt 大于
-le 小于等于
-lt 小于
< 小于,需要用(( ))括起来,如(( “$n” < “$m”))
<= 小于等于,需要用(( ))括起来,如(( “$n” <= “$m”))
> 大于,需要用(( ))括起来,如(( “$n” > “$m”))
>= 大于等于,需要用(( ))括起来,如(( “$n” >= “$m”))
== 等于,需要用(( ))括起来,如(( “$n” == “$m”))
!= 不等于,需要用(( ))括起来,如(( “$n” != “$m”))
[root@centos6 test2]# [ 3 -gt 2 ] ; echo $?
0
[root@centos6 test2]# 
[root@centos6 test2]# [ 3 -lt 2 ] ; echo $?
1
[root@centos6 test2]# 
[root@centos6 test2]# [ 3 -le 2 ] ; echo $?
1
[root@centos6 test2]# 
[root@centos6 test2]# [ 3 -eq 2 ] ; echo $?
1
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值