条件测试
    条件为真返回 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