Shell 中常用的if 语句总结

内容经过有选择的整理和收集

if的基本语法

if [ condition];then
  command
elif [ condition];then
  command
else
  command
fi

常用的文件/文件夹(目录)判断

以下只列了常用的,其实还有很多

语句 功能
[ -d DIR ] 如果 DIR 存在且是一个目录则为真
[ -e FILE ] 如果 FILE 存在则为真
[ -r FILE ] 如果 FILE 存在且是可读的则为真
[ -s FILE ] 如果 FILE 存在且大小不为0则为真
[ -w FILE ] 如果 FILE存在且是可写的则为真
[ -x FILE ] 如果 FILE 存在且是可执行的则为真
[ FILE1 -nt FILE2 ] 如果 FILE1 比 FILE2新, 或者FILE1 存在且 FILE2 不存在t则为真
[ FILE1 -ot FILE2 ] 如果 FILE1 比 FILE2 要旧, 或者 FILE2 存在且 FILE1 不存在则为真

字符串判断

补充:==和!=两者都是用于字符串比较的,不可用于整数比较,整数比较只能使用-eq, -gt这种形式。无论是字符串比较还是整数比较最好不要使用大于号小于号,如果要使用需要对大于号小于号进行转义,比如小于号就是 \<

语句 功能
[ -z STRING ] 如果STRING的长度为零则为真 ,即判断是否为空,空即是真
[ -n STRING ] 如果STRING的长度非零则为真 ,即判断是否为非空,非空即是真
[ STRING1 == STRING2 ] 如果两个字符串相同则为真(等号左右有空格!否则是赋值,下同)
[ STRING1 != STRING2 ] 如果字符串不相同则为真

数值判断

语句 功能
INT1 -eq INT2 INT1和INT2两数相等为真
INT1 -ne INT2 INT1和INT2两数不等为真
INT1 -gt INT2 NT1大于INT1为真
INT1 -ge INT2 INT1大于等于INT2为真
INT1 -lt INT2 INT1小于INT2为真
INT1 -le INT2 INT1小于等于INT2为真

逻辑判断

$$ 与
|| 或
! 非

持续更新中……

reference
https://blog.csdn.net/zhan570556752/article/details/80399154

猜你喜欢

转载自blog.csdn.net/MoreAction_/article/details/107226589