if判断
if 使用方法
- 单分支
语法:
if [ 判断条件 ];then
条件执行的语句
fi - 双分支
语法:
if [ 判断条件 ];then
条件执行的语句
else
条件执行的语句2
fi - 多分支
语法:
if [ 判断条件 ];then
条件执行的语句
elif [ 判断条件 ];then
条件执行的语句2
else
条件执行的语句3
fi
文件比较与检查
文件比较运算符 | 含义 | 示例 |
---|
-e | 如果文件或目录存在,则为真 | [ -e /file ] |
-d | 如果文件存在且为目录,则为真 | [ -d /file ] |
-f | 如果文件存在且为文件,则为真 | [ -f /usr/bin/grep.sh ] |
-L | 如果文件存在文件为符号链接,则为真 | [ -L /usr/bin/grep.sh ] |
-r | 如果文件存在文件且可读,则为真 | [ -r /usr/bin/grep.sh ] |
-w | 如果文件存在文件且可写,则为真 | [ -w /var//usr/bin/grep.sh ] |
-x | 如果文件存在且为可执行文件,则为真 | [ -x /usr/bin/grep.sh ] |
-s | 如果文件长度不为0,则为真 | [ -s /usr/bin/grep.sh ] |
-h | 如果文件是软链接,则为真 | [ -h /usr/bin/grep.sh ] |
-nt | 如果文件1比文件2新,则为真 | [ /usr/bin/demo.sh -nt /bin/demo.sh ] |
-ot | 如果文件1比文件2旧,则为真 | [ /usr/bin/demo.sh -ot /bin/demo.sh ] |
整数变量表达式
比较运算符 | 含义 | 示例 |
---|
-eq | 等于则条件为真 | [ 120 -eq 20 ] |
-lt | 小于则条件为真 | [ 120 -lt 20 ] |
-le | 小于等于则条件为真 | [ 120 -le 20 ] |
-ne | 不等于则条件为真 | [ 120 -ne 20 ] |
-gt | 大于则条件为真 | [ 120 -gt 20 ] |
-ge | 大于等于则条件为真 | [ 120 -ge 20 ] |
字符串比较运算符
比较运算符 | 含义 | 示例 |
---|
== | 如果demo1等于demo2,则为真。字符串允许使用赋值号做等号。 | [ $demo1 == $demo2 ] |
!= | 如果demo1不等于demo2,则为真。 | [ $demo1 != $demo2 ] |
-n | 如果demo 非空,则为真。 | [ -n $demo ] |
-z | 如果demo 为空,则为真。 | [ -z $demo ] |
逻辑运算
逻辑与 –a (&&)
if [ 表达式1 –a 表达式2 ]:条件表达式的与
[表达式1 && 表达式2]
逻辑或 -o (||)
if [ 表达式1 –o 表达式2 ]:条件表达式的或
[表达式1 || 表达式2]