Shell脚本——if条件总结
基本语法
If [ command ]; then
符合该条件执行的语句
fi
if [ command ]; then
符合该条件执行的语句
elif [ command ]; then
符合该条件执行的语句
else
符合该条件执行的语句
fi
使用简单举例:
#! /bin/bash
count=7
if [ $count -gt 10 ];then
echo "大于10"
elif [ $count -lt 5 ];then
echo "小于5"
else
echo "不符合条件"
fi
输出“不符合条件”;当修改count=20,输出“大于10”;当修改count=0,输出“小于5”。
注意条件:
1) [ ]表示条件测试,条件前后要存在空格;
2) if,then,fi是分开的语句,所以在同一行输入时要用分号隔开;
3) if判断中对变量进行处理时,为防止不必要错误,需要加入引号;
4) if判断中要使用大于/小于时,需要使用对应的转义符号,避免>和<与输入/出重定向冲突;
5) 空变量和未初始化变量会对shell脚本测试产生严重错误,故对不确定变量的内容,测试前使用-n/-z进行测试
if条件判断
数值判断
小于:-lt if[ “$a” -lt “$b” ]
小于等于:-le if[ “$a” -le “$b” ]
大于:-gt if[ “$a” -gt “$b” ]
大于等于:-ge if[ “$a” -ge “$b” ]
等于:-eq if[ “$a” -eq “$b” ]
不等于:-ne if[ “$a” -ne “$b” ]
小于:< if(( “$a” < “$b” ))
小于等于:<= if (( “$a”<= “$b” ))
大于:> if(( “$a” > “$b” ))
大于等于:>= if(( “$a” >= “$b” ))
字符串判断
字符串长度为0 [-z $str ]
字符串长度非0 [-n $str ]
字符串部位空 [$str ]
字符串相同 [$str1 == $str2 ]
字符串不同 [$str1 != $str2 ]
字符串排序靠前 [$str1 < $str2 ]
字符串排序靠后 [$str1> $str2 ]
逻辑判断
逻辑非 [!$exp ]
逻辑与 [$exp1 -a $exp2 ]
逻辑或 [$exp1 -o $exp2 ]
逻辑并 [$exp1 ] || [ $exp2 ]
逻辑或 [$exp1 ] && [ $exp2 ]
文件/目录判断
文件存在 [-e $file ]
普通文件 [-f $file ]
文件长度非0 [-s $file ]
目录 [-d $file ]
块设备 [-b $file ]
字符设备 [-c $file ]
管道 [ -p $file ]
符号链接 [-L $file ]
套接字 [-S $file ]
读权限 [-r $file ]
写权限 [-w $file ]
执行权限 [-x $file ]
文件新 [$file1 -nt $file2 ]
文件旧 [$file1 -ot $file2 ]
指向同设备/节点 [ $file1 -ef $file2 ]