bash的比较分门别类
bash的比较分类
测试方法:
[ expression ]
[[ expression ]]
test expression
bash中常用的条件测试:
1. 整数测试
2. 文件测试
3. 字符串比较测试
整数测试:
-eq:测试两个整数是否相等;比如 $A -eq $B,如果A与B变量的值相等,则返回0,否则返回非0值
-nq:测试两个整数是否不等;相等为假,不等为真
-gt:测试一个数是否大于另一个数;大于为真,否则为假
-lt:测试一个数是否小于零一个数;小于为真,否则为假
-ge:测试一个数是否大于或等于另一个数;大于或等于为真,否则为假
-le:测试一个数是否小于或等于另一个数;小于或等于为真,否则为假
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:测试指定字符串是否不空,不空为真,空为假
测试方法:
[ expression ]
[[ expression ]]
test expression
bash中常用的条件测试:
1. 整数测试
2. 文件测试
3. 字符串比较测试
整数测试:
-eq:测试两个整数是否相等;比如 $A -eq $B,如果A与B变量的值相等,则返回0,否则返回非0值
-nq:测试两个整数是否不等;相等为假,不等为真
-gt:测试一个数是否大于另一个数;大于为真,否则为假
-lt:测试一个数是否小于零一个数;小于为真,否则为假
-ge:测试一个数是否大于或等于另一个数;大于或等于为真,否则为假
-le:测试一个数是否小于或等于另一个数;小于或等于为真,否则为假
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:测试指定字符串是否不空,不空为真,空为假