-
注意
- 单中括号[]里只能用-a 表示与, -o 表示或。不能适用&& 和 ||
- 双中括号[[]],不能使用-a和-o, 只能使用&& 和 ||
- 多个表达式连接只能用 && 和 ||, 如 [] && [] || []
-
整数多条件判断, [] 和 [[]] 都适用
[[ 2 -gt 1 && 3 -gt 1 ]] && echo 'T' || echo 'F' # T [[ 2 -gt 1 && 1 -gt 1 ]] && echo 'T' || echo 'F' # F [[ 2 -gt 1 || 1 -gt 1 ]] && echo 'T' || echo 'F' # T [[ 2 -gt 1 ]] && [[ 3 -gt 1 ]] && echo 'T' || echo 'F' # T [ 2 -gt 1 -a 3 -gt 1 ] && echo 'T' || echo 'F' # T [ 2 -gt 1 -a 1 -gt 1 ] && echo 'T' || echo 'F' # F [ 2 -gt 1 -o 1 -gt 1 ] && echo 'T' || echo 'F' # T
-
字符串多条件判断, 只适用于[[]]
- 正确示例
v='Hello World' [[ $v == *'Hello'* && $v == *'World'* ]] && echo 'Y' || echo 'N' # Y [[ $v == *'Hello'* || $v == *'test'* ]] && echo 'Y' || echo 'N' # Y [[ $v == *'Hello'* && $v == *'test'* ]] && echo 'Y' || echo 'N' # N [[ $v == *'Hello'* ]] && [[ $v == *'World'* ]] && echo 'Y' || echo 'N' # Y [[ $v == *'Hello'* ]] || [[ $v == *'test'* ]] && echo 'Y' || echo 'N' # Y [[ $v == *'Hello'* ]] && [[ $v == *'test'* ]] && echo 'Y' || echo 'N' # N
- 错误示例
结果都为Nv='Hello World' [ "$v" == *'Hello'* -a "$v" == *'World'* ] && echo 'Y' || echo 'N' [ "$v" == *'Hello'* -o "$v" == *'test'* ] && echo 'Y' || echo 'N' [ "$v" == *'Hello'* ] && [ "$v" == *'World'* ] && echo 'Y' || echo 'N' [ "$v" == *'Hello'* ] || [ "$v" == *'test'* ] && echo 'Y' || echo 'N'
- 正确示例
相关文章
- 09-242021-10-20:分数到小数。给定两个整数,分别表示分数的分子numerator和分母denominator,以字符串形式返回小数。如果小数部分为循环小数,则将循环的部分括在括号内。输入: num
- 09-24【转】shell学习笔记(三)——引用变量、内部变量、条件测试、字符串比较、整数比较等
- 09-24转换字符串为整数。 if (myString.IsInt())和高级灰高级灰
- 09-24shell 数值比较和字符串比较
- 09-24从字符串提取数字:正数(整数和小数)和百分数
- 09-24shell中的比较运算符和逻辑运算符
- 09-24shell-字符串及整数操作符讲解与多实践
- 09-242021.12.16 输入一个字符串,内有数字和非数字字符,统计其*有多少个整数
- 09-24shell在文件头部和尾部插入字符串
- 09-24字符串和整数之间的转换