比较
在实际当中,我们一定会遇到变量之间的比较的时候,在shell中比较主要是分为数值类型的比较和字符类型的比较,具体如何比较如下
数值比较
- []比较
#!/bin/bash
a=1
b=0
if [ $a > $b ]
then
echo "a > b"
else
echo "a < b"
fi
//结果输出 a > b
如果把[]中的>
换成>=
、<=
会报错,这个时候用2.的方法就没问题了
- (())比较
#!/bin/bash
a=1
b=0
if (( $a >= $b ))
then
echo "a >= b"
else
echo "a < b"
fi
//结果输出 a >= b
字符串比较
字符串主要有下面5个操作符
1. =
:检测两个字符串是否相等,相等返回 true
#!/bin/bash
a="hello"
b="hallo"
if[ $a = $b ]
then
echo 'a=b'
else
echo 'a!=b'
if
//结果输出 a=b
!=
:检两个字符串是否相等,不相等返回 true。
#!/bin/bash
a="hello"
b="hallo"
if[ $a != $b ]
then
echo 'a!=b'
else
echo 'a=b'
if
//结果输出 a!=b
-z
:检测字符串长度是否为0,为 0 返回 true。
#!/bin/bash
a="hello"
b="hallo"
if[ -z $a ]
then
echo 'a的字符长度为0'
else
echo 'a的字符长度不为0'
if
//结果输出 a的字符长度不为0
-n
:检测字符串长度是否为0,不为 0 返回 true。
#!/bin/bash
a="hello"
b="hallo"
if[ -n $a ]
then
echo 'a的字符长度不为0'
else
echo 'a的字符长度为0'
if
//结果输出 a的字符长度不为0
str
:检测字符串是否为空,不为空返回 true。
#!/bin/bash
a="hello"
b="hallo"
if[ $a ]
then
echo 'a字符不为空'
else
echo 'a字符为空'
if
//结果输出 a字符不为空