bash的比较分类
栏目:服务器时间:2015-05-25 08:40:14
测试方法:
[ expression ]
[[ expression ]]
test expression
bash中经常使用的条件测试:
1. 整数测试
2. 文件测试
3. 字符串比较测试
整数测试:
-eq:测试两个整数是不是相等;比如 $A -eq $B,如果A与B变量的值相等,则返回0,否则返回非0值
-nq:测试两个整数是不是不等;相等为假,不等为真
-gt:测试1个数是不是大于另外一个数;大于为真,否则为假
-lt:测试1个数是不是小于零1个数;小于为真,否则为假
-ge:测试1个数是不是大于或等于另外一个数;大于或等于为真,否则为假
-le:测试1个数是不是小于或等于另外一个数;小于或等于为真,否则为假
INT1=34
INT2=44
[ $INT1 -eq $INT2 ]
[[ $INT1 -eq $INT2 ]]
test $INT1 -eq $INT2
if [ grep "^USERNAME>" /etc/passwd ]; then #这类写法是毛病的
if grep "^USERNAME>" /etc/passwd ; then #改成这类写法
文件测试:
-e FILENAME:文件是不是存在
-f FILENAME:测试文件是不是是普通文件
-d FILENAME:测试指定路径是不是为目录
-r FILENAME:测试当前用户对指定文件是不是有读权限
-w FILENAME:测试当前用户对指定文件是不是有写权限
-x FILENAME:测试当前用户对指定文件是不是有履行权限
字符串比较测试:
==或=:相等性测试,相等为真,不等为假 [ $A == $B ], 等号两端必须有空格
!=:测试是不是不等,不等威震,相等为假
>:
<:
-z string:测试指定字符串是不是为空,空则真,不空则假
-n string:测试指定字符串是不是不空,不空为真,空为假
------分隔线----------------------------
------分隔线----------------------------