Bash 提供了多种方式来测试文件属性和执行条件判断。这些测试对于脚本编写和条件流控制至关重要。
文件和条件判断的两种写法
使用
test
命令:test [条件选项] [文件]
使用中括号:
[ [条件选项] [文件] ]
文件类型判断
判断文件是否存在:
[ -e test.txt ] && echo yes || echo no
其他文件类型判断选项:
-b 文件 块设备文件判断 -c 文件 字符设备文件判断 -d 文件 目录判断 -e 文件 文件存在判断 -f 文件 普通文件判断 -L 文件 符号链接文件判断 -p 文件 管道文件判断 -s 文件 非空文件判断 -S 文件 套接字文件判断
文件权限判断
-r 文件 读权限判断
-w 文件 写权限判断
-x 文件 执行权限判断
-u 文件 SUID权限判断
-g 文件 SGID权限判断
-k 文件 Sticky位权限判断
新旧inode比较
文件1 -nt 文件2 文件1新于文件2判断
文件1 -ot 文件2 文件1旧于文件2判断
文件1 -ef 文件2 inode号相同判断
数值判断
数字1 -eq 数字2 相等判断
数字1 -ne 数字2 不相等判断
数字1 -gt 数字2 大于判断
数字1 -lt 数字2 小于判断
数字1 -ge 数字2 大于等于判断
数字1 -le 数字2 小于等于判断
多重判断
示例:判断1是否等于1并且1是否等于2
[ 1 -eq 1 -a 1 -eq 2 ] && echo yes || echo no
多重判断选项:
判断1 -a 判断2 两个判断都成立为真 判断1 -o 判断2 两个判断之一成立为真 ! 判断 逻辑非,使原始判断式取反
评论区