条件测试
条件为真返回 0,条件为假返回 1
两种条件测试方法
shell脚本中
[ 条件 ] //中括号两侧必须有空格
shell命令行
test 条件
test能够理解3中类型的表达式
1.文件测试
2.字符串比较
3.数字比较
一、文件测试
-f 存在且是普通文件
-d 存在且是目录
-l 存在且是符号链接
-b 块设备
-c 字符设备
-e 文件存在
-r 是否有读权限
-w 是否有写权限
-x 是否有执行权限
举例:
# test -f /etc/hosts
# echo $?
二、字符串比较
加双引号
-n STRING
the length of STRING is nonzero 字符串非空
-z STRING
the length of STRING is zero 字符串为空
STRING1 == STRING2
the strings are equal 两个字符串相等
STRING1 != STRING2
the strings are not equal 两个字符串不相等
举例:
# test -n "$a"
b=abc
# test -z "$b"
# a=a1
# b=b1
# test "$a" = "$b"
# echo $?
# test "$a" = "a1"
# echo $?
# test "$a" != "a1"
echo $?
三、数字比较
不要加引号,并且是纯数字
eq 等于 equal =
ne 不等于 not equal !=
ge 大于等于 great equal >=
gt 大于 great than >
le 小于等于 less equal <=
lt 小于 less than <
举例:
# a=10
# test $a -eq 10
# echo $?
正则
[[ "$USER" =~ ^r ]]
[[ "$num10" =~ ^[0-9]+$ ]] 纯数字
举例:
# vim if.sh
#! /bin/bash
read -p "请输入你的成绩:" num
if [[ $num =~ ^[0-9]+$ ]];then
:
else
echo "请输入纯数字"
exit 666
fi