shell字符串比较说明
1 完全比较方法(完全匹配)
if [ "$soure" == "$dest" ]; then
echo "is =="
else
echo "is !="
fi
if语句中的==判断字符串是否相等:
1、使用完全匹配方式;
2、两边的双引号都是可有可无的,但当字符串为空的时候就会报错,提示unary operator expected,因此,需要加入双引号;
3、也可以使用=号,但==更合适一些,防止误解,避免误认为是在进行赋值操作。
2 模糊比较方法(正则表达式)
if [[ "$soure" == dest* ]]; then
echo "is =="
else
echo "is !="
fi
当if语句中的单中括号[]变成双中括号[[]]时,支持模糊匹配,此时:
1、模糊匹配规则不能添加双引号,否则无效,会被当做普通字符串进行比较。
2、被比较的字符串,可以加双引号,也可以不加,当字符串为空也不会报错,但是为了统一规范,防止遗漏,因此,推荐还是加入双引号。