1,条件测试:
test 条件测试的表达式。
- e 测试目录或者文件是否存在。
- d 测试是否为目录。
- f 测试是否为文件
- r 测试当前用户是否有读取权限
- w 测试当前用户是否有写取权限
- x 测试当前用户是否有读取权限
2,test 比较字符串
-eq 等于 -ne 不等于 -gt 大于 -lt 小于 -le 小于等于 -ge 大于等于
只能用于比较整数,不能用于字符串。
== 等于 != 不等于 > 大于 < 小于 <= 小于等于 >= 大于等于
[ 5 -eq 4 ] [ -e ky32 ] 类C语言
[ [ 5 -eq 4 ] ] 双括号更能强大 ,不会出现歧义。语法与但括号一致。
[ -z $a ] -z 判断是否为空。 a = " "
3,逻辑测试:id
且 条件测试的条件都要为真。 -a &&
或 有一边满足即可。 -o ||
! 逻辑否
[ 表达式1 ] 操作符 [ 表达式2 ]
[ [ 表达式1 操作符 表达式 2 ] ] 双中括号只能用 && || 表示逻辑且 或者 逻辑或
[ 表达式1 操作符 表达式2 ] 但括号只能用 - a - o
4,但分支 : if [ 条件判断 ]
then
echo " ok"
fi
双分支: if [ 条件判断 ]
then
echo " 满足if 条件执行的语句"
else
echo " 不满足if 执行的语句 "
fi
多分支结构: if [ 条件1 ]
then 执行条件1的命令
elif [ 条件2 ]
then 执行条件2的命令序列
else 上述都不满足,执行else命令序列
fi
if 嵌套 列: read -p "输入一个数:" num
if [ $num -eq $num ] && [ $num -ge 0 -a $num -le 100 ]
then
echo " 输入正确 "
if [ $(($num%2)) -eq 0 ]
then
echo "偶数"
else
echo " 奇数 "
fi
else
echo " 输入的不正确 "
fi
case 多分支结构: 列: read -p " 请输入一个数 " num
[ [ $num -ge 80 && $num -le 100 ] ] && a=" great "
[ [ $num -ge 60 && $num -le 79 ] ] && a=" yiban "
case $a in
great )
echo "${a}分,优秀 "
;;
yiban )
echo "${a}分,及格 "
;;
* )
echo "30 遍 "
esac