1.条件测试
-d ---目录
-f ---正规文件
-L ----符号链接
-r ----可读
-s ----文件长度大于0,非空
-w ---可写
-u ---文件有suid位位置
-x ----可执行
[root@localhost yjg]# test -x yjg.txt
[root@localhost yjg]# echo $?
0
2.测试逻辑操作符
[root@localhost yjg]# [ -w yjg.txt -a -w zhanghong.txt ] ----逻辑与
[root@localhost yjg]# echo $?
0
[root@localhost yjg]# [ -x yjg.txt -o -w zhanghong.txt ] ------逻辑或
[root@localhost yjg]# echo $?
0
3.字符串测试
= 字符串相等
! = 字符串不等
-z 空串
-n 非空串
[root@localhost yjg]# [ -z $EDITOR]
[root@localhost yjg]# echo $?
0
[root@localhost yjg]# [ $EDITOR = "vi" ]
[root@localhost yjg]# echo $?
0
[root@localhost ~]# s1="/dev/kk1"
[root@localhost ~]# s2="/dev/kk2"
[root@localhost ~]# [ ${s1} = ${s2} ]
[root@localhost ~]# echo $?
1
4.测试数值
-eq -----相等
-ne -----不相等
-gt ------大于
-lt ------ 小于
-le ------小于等于
-ge ------大于等于
[root@localhost ~]# NUMBER=130
[root@localhost ~]# [ ${NUMBER} -eq 130 ]
[root@localhost ~]# echo $?
0
[root@localhost ~]# SOURCE_NUM=120
[root@localhost ~]# DEST_NUM=130
[root@localhost ~]# [ ${SOURCE_NUM} -gt ${DEST_NUM} ]
[root@localhost ~]# $echo $?
-bash: 1: command not found
[root@localhost ~]# echo $?
127
[root@localhost ~]# [ ${SOURCE_NUM} -lt ${DEST_NUM} ]
[root@localhost ~]# echo $?
0
[root@localhost ~]#
5.expr的用法
expr ------相当于一个计数器
[root@localhost ~]# expr 10 + 10
20
[root@localhost ~]# expr 30 / 2
15
[root@localhost ~]# expr 30 / 2 /3
expr: syntax error
[root@localhost ~]# expr 30 / 2 / 3
5
[root@localhost ~]# expr 30 /* 3
90
[root@localhost ~]#
增量计数
[root@localhost ~]# LOOP=0
[root@localhost ~]# LOOP=`expr $LOOP + 1 `
数值测试
[root@localhost ~]# VALUE=12
[root@localhost ~]# expr $VALUE + 10
22
[root@localhost ~]# echo $?
0
[root@localhost ~]# VALUE=hello
[root@localhost ~]# expr $VALUE + 10
expr: non-numeric argument
[root@localhost ~]#
[root@localhost ~]# VALUE=hello
[root@localhost ~]# expr $VALUE + 10
expr: non-numeric argument
[root@localhost ~]# expr $VALUE = "hello"
1
模式匹配
[root@localhost ~]# VALUE=accounts.doc
[root@localhost ~]# expr $VALUE : '/(.*/).doc'
accounts