目录
上次说了算数运算符和关系运算符,这次说下布尔运算符和字符串运算符。
1、布尔运算符
布尔运算符常见的有3种,! (非运算符)、-o(或运算符)、-a(与运算符)。
或运算:只要有一个为true则返回为true
运算符:必须都为true才返回为true
shell代码:
#!/bin/bash
#!非运算
if [ 10 != 10 ] #判断10是不是等于10
then
echo "如果为ture走该分支"
else
echo "如果为false走该分支"
fi
#打印结果为:如果为false走该分支 因为10等于10,所以判断结果为false
#-a与运算
if [ 10 -gt 5 -a 10 -lt 20 ] #判断10大于5并且小于20
then
echo "两个条件都满足走该分支" #如果判断为true走该分支
else
echo "有一个条件不满足走该分支" #如果判断为flase走该分支
fi
#打印结果为:两个条件都满足走该分支 因为满足10大于5并且小于20,所以走到true分支中
#-o或运算
if [ 10 -gt 15 -a 10 -lt 20 ] #判断10大于15并且小于20
then
echo "有一个条件满足就走该分支" #如果判断为true走该分支
else
echo "都不满足走该分支" #如果判断为flase走该分支
fi
#打印结果为:有一个条件满足就走该分支 因为满足10小于20这个判断,所以能走到true分支
代码截图:
运行结果截图:
在进行或者与进行判断时,也可以使用&&(与-a用法相同,与运算)、||(与-o用法相同,或运算)不过在判断语句中需要用两组 [[ ]] 给括起来。
运行代码:
#!/bin/bash
#$$与运算
if [[ 10 -gt 5 && 10 -lt 20 ]] #判断10大于5并且小于20
then
echo "两个条件都满足走该分支" #如果判断为true走该分支
else
echo "有一个条件不满足走该分支" #如果判断为flase走该分支
fi
#打印结果为:两个条件都满足走该分支 因为满足10大于5并且小于20,所以走到true分支中
#||或运算
if [[ 10 -gt 15 || 10 -lt 20 ]] #判断10大于15并且小于20
then
echo "有一个条件满足就走该分支" #如果判断为true走该分支
else
echo "都不满足走该分支" #如果判断为flase走该分支
fi
#打印结果为:有一个条件满足就走该分支 因为满足10小于20这个判断,所以能走到true分支
代码截图:
运行结果截图:
2、字符串运算符
字符串运算符是针对字符串类型进行判断所使用的,常用的有以下几个=(判断两个字符串是否相等)、!=(判断两个字符串是否不相等)、-z(判断字符串长度是否为0)、-n(判断字符串长度是否不为0)、[字符串](判断字符串是否不为空)
shell代码:
#!/bin/bash
a="aaa"
b="bbb"
#=判断a的值和b的值是否相等
if [ $a = $b ]
then
echo "如果a和b字符串相同则走该分支" #如果判断为true走该分支
else
echo "如果a和b字符串不相同则走该分支" #如果判断为false走该分支
fi
#打印结果为:如果a和b字符串不相同则走该分支 因为判断a不等于b所以走的else分支
#!=不等于判断a和b的值是否不相等
if [ $a != $b ]
then
echo "如果a和b字符串不相同则走该分支" #如果判断为true走该分支
else
echo "如果a和b字符串相同则走该分支" #如果判断为false走该分支
fi
#打印结果为:如果a和b字符串不相同则走该分支 因为a不等于b所以直接走到then分支下
#-z判断字符串长度是否为0
if [ -z $a ]
then
echo "如果a字符串长度为0走该分支" #如果判断为true走该分支
else
echo "如果a字符串长度不为0则走该分支" #如果判断为false走该分支
fi
#打印结果为:如果a字符串长度不为0则走该分支 因为a的字符串长度为3所以走到了else分支下
#-n判断字符串长度是否不为0
if [ -n "$a" ]
then
echo "如果a字符串长度不为0走该分支" #如果判断为true走该分支
else
echo "如果a字符串长度为0走该分支" #如果判断为false走该分支
fi
#打印结果为:如果a字符串长度不为0走该分支 因为a的字符串长度不为0,所以在then分支下
#判断字符串是否为空
if [ $a ]
then
echo "如果a字符串不为空走该分支" #如果判断为true走该分支
else
echo "如果a字符串为空走该分支" #如果判断为false走该分支
fi
#打印结果:如果a字符串不为空走该分支 因为字符串a不为空所以走到了该分支下
代码截图:
运行结果:
还剩最后一个文件测试运算符,下一章会说文件测试运算符的内容。
下图为公众号二维码,内容会同步发出,大家可以关注一起学习