条件判断语句
语法1
if condition
then
command1
command2
…
fi
单行写法:if[ condition ];then command;fi
语法2
if condition
then
command1
command2
…
else
command
fi
语法3
if condition1
then
command1
elif condition2
then
command2
else
commandN
fi
运算符
算术运算符
+加
-减
*乘
/除
%取余
=赋值
==相等
!=不相等
原生bash不支持数学运算,但可以通过其他命令来实现,如expr
#!/bin/bash
var=expr 2+2
表达式和运算符之间要有空格,例如2+2是不对的,必须写成 2 + 2
完整表达式要加 ``反引号
*如果需要执行,需要 * 转义输出
关系运算符
关系运算符只支持数字,不支持字符串,除非字符串的值是数字。
-eq 是否相等 相等返回true (equal)
-ne 不相等返回true (no equal)
-gt 左边的数大于右边 true (greater than)
-lt 左小于右 (less than)
-ge 大于等于 (greater or equal)
-le 小于等于 (less or equal)
逻辑运算符
! 非
-o 只要有一个为true就为true
-a 只要一个为false就为false,全部为true才true
字符串运算符
= 检测两个运算符是否相等(注意,这是针对字符串)
!= 是否不相等,不相等就是真
-z 检测字符串长度是否为0,为0返回true (zero) -z $a
-n 检测字符串长度是否为0,不为0返回true
str 检测字符串是否为空,不为空返回true
###### 文件测试运算符
-d file 检测文件是否目录
-f file 检测文件是否为普通文件
-r/-w/-x file 可读可写可执行 (或的关系)
-e file 检测文件(包括目录)是否存在
(
```powershell
if [ -d $filepath ]
then
echo 'is a dir'
else
echo 'not a dir'
fi
shell 18-27完成