Introduction
作为上一篇 shell中判断空字符串和有趣的空字符串 的延伸补充
经验之谈
字符串
判断或者比较
个人建议或者喜欢用 "$param"x = "x"
来判断字符串是否为空
- 建议加上
双引号 "$param"
- 使用
= 、!= 、-n 、-z
等执行判断- = 判断两个字符是否相等,
相等包括字符创的内容和长度
- != 判断两个字符是否不相等
- -n 字符串的长度大于0(非空字符串)
当成 not zero
记忆 - -z 字符串的长度等于0(空字符串),
当成 zero
记忆
- = 判断两个字符是否相等,
附加:
字符串`param`的长度 `${#param}`
数字
的比较
使用如下操作符来比较,不用加双引号 "$param"
- -eq 两个数字
相等
- -ne 两个数字
不相等
- -lt 两个数字前者
小于
后者 - -le 两个数字前者
小于等于
后者 - -gt 两个数字前者
大于
后者 - -ge 两个数字前者
大于等于
后者
文件的比较
- -r file 用户可读为真
- -w file 用户可写为真
- -x file 用户可执行为真
- -f file 文件为正规文件为真
- -d file 文件为目录为真
- -c file 文件为字符特殊文件为真
- -b file 文件为块特殊文件为真
- -s file 文件大小非0时为真
- -t file 当文件描述符(默认为1)指定的设备为终端时为真
说明:
这里我们最常用的是
`-f` 判断文件是否存在
`-d` 判断目录是否存在
`-s` 文件是不是非空
简书地址:shell中判断空字符串和有趣的空字符串(延伸篇)
公众号: DailyJobOps