基本和高级条件表达式操作符
符号 | 作用 |
---|---|
{} | 代码块,不创建新的子 shell,用于组织一系列的命令 |
() | 创建一个子 shell,并在其中执行命令 |
[[]] | 执行高级条件表达式,支持模式匹配、正则表达式等 |
$ | 用于变量引用、命令替换、算术运算等 |
| | 管道运算符,将一个命令的输出作为另一个命令的输入 |
! | 逻辑非运算符,用于否定一个条件表达式的结果 |
&& | 逻辑与运算符,如果左边的命令/条件表达式返回真(成功),则执行右边的命令 |
|| | 逻辑或运算符,如果左边的命令/条件表达式返回假(失败),则执行右边的命令 |
特殊
符号 | 作用 |
---|---|
| | 在正则中表示或 |
! | 在引用中表示间距引用 |
# | 在数组中表示长度 |
条件操作符
操作符 | 描述 |
---|---|
= | 字符串比较(相等) |
!= | 字符串比较(不等) |
-lt | 数值比较(小于) |
-gt | 数值比较(大于) |
-le | 数值比较(小于等于) |
-ge | 数值比较(大于等于) |
-eq | 数值比较(等于) |
-ne | 数值比较(不等于) |
=~ | 正则表达式匹配 |
-z | 字符串为空 |
-n | 字符串不为空 |
:= | 在参数扩展中使 用,用于在变量未设置或为空时赋予一个默认值 |
逻辑操作符详解
操作符 | 描述 |
---|---|
&& | 逻辑与(AND) |
|| | 逻辑或(OR) |
! | 逻辑非(NOT) |
算术操作符详解
操作符 | 描述 |
---|---|
+ | 加法 |
- | 减法 |
* | 乘法 |
/ | 除法 |
% | 取模 |
** | 幂运算 |
文件测试操作符
操作符 | 描述 | 示例 |
---|---|---|
-f | 文件存在且为普通文件 | if [[ -f $file ]] |
-d | 目录存在 | if [[ -d $directory ]] |
-e | 文件存在 | if [[ -e $filepath ]] |
-r | 文件存在且可读 | if [[ -r $file ]] |
-w | 文件存在且可写 | if [[ -w $file ]] |
-x | 文件存在且可执行 | if [[ -x $file ]] |
-s | 文件存在且非空 | if [[ -s $file ]] |