一、整数比较运算符
讲解整数运算比较符之前,我们得先讲讲运算符的用法,其用法结合表达式进行使用,而表达式的具体使用如下:
表达式形式
[ 2020 -ne 2021 ]
[ 2020 -eq 2020 ]
test 2020 -ne 2021
注意,[ ]中表达式前后皆有空格。
shell脚本中的整数运算比较符主要有如下:
1、-eq:表示等于,用于判断两数是否相等(equal),相等则返回true。
2、-ne:表示不等于,用于判断两数是否不相等(not equal),不相等则返回true。
3、-gt:表示大于,用于判断第一个数是否大于后一个数(greater then),大于则返回true。
4、-lt:表示大于,用于判断第一个数是否小于后一个数(less then),小于则返回true。
5、-ge:表示大于或等于,用于判断第一个数是否大于或等于后一个数(greater or equal),大于或等于则返回true。
6、-le:表示小于或等于,用于判断第一个数是否小于或等于后一个数(less then or equal),小于或等于则返回true。
二、字符串比较运算符
1、==:表示等于,用于判断两个字符串是否相等,相等则返回true,否则返回false;用法如:[ "C" == "C" ];
2、!=:表示不等于,用于判断两个字符串是否不相等,不相等则返回true,否则返回false;用法如:[ "C" != "D" ];
3、>:表示大于,判断字符串大小时根据字符串对应的ASCII字码表,前一个字符串大于后一个字符串时,返回true,否则返回false;用法如:[ 9 > 3 ]或[[ 9 > 3 ]]或(( 9 > 3 ));
4、<:表示小于,判断字符串大小时根据字符串对应的ASCII字码表,前一个字符串小于后一个字符串时,返回true,否则返回false;用法如:用法如:[ 9 < 30 ]或[[ 9 < 30 ]]或(( 9 < 30 ));
5、>=:表示大于等于,当前一个字符串大于等于后一个字符串时,返回true,否则返回false;,用法如:( 10 >= 9 );
6、<=:表示小于等于,当前一个字符串小于等于后一个字符串时,返回true,否则返回false;用法如:( 9 <= 10 );
7、-n:用于判断字符串长度是否不等于0,当字符串不为0时,返回true,否则返回false;用法如:str1="haodaolinux",str2="",[ -n "$str1" ]为true,[ -n "$str2" ]为false;
8、-z:用于判断字符串长度是否等于0,当字符串为0时,返回true,否则返回false;用法如:str1="haodaolinux",str2="",[ -z "$str1" ]为false,[ -z "$str2" ]为true;
9、当一个字符串存在时,返回真,否则返回false;用法如:str1="haodaolinux",str2=,[ $str1 ]为true,[ $str2 ]为false;
三、文件比较运算符
1、-e:用于判断文件或者目录是否存在,存在时为真,返回true,否则返回false。用法如:[ -e 路径 ];
2、-f:用于判断文件是否存在,存在时为真,返回true,否则返回false。用法如:[ -f 文件路径 ];
3、-d:用于判断目录是否存在,存在时为真,返回true,否则返回false。用法如:[ -d 文件路径 ];
4、-r:用于判断文件是否有读的权限,有读权限时为真,返回true,否则返回false。用法如:[ -r 文件名称 ];
5、-w:用于判断文件是否有写的权限,有写权限时为真,返回true,否则返回false。用法如:[ -w 文件名称 ];
6、-x:用于判断文件是否有执行的权限,有执行权限时为真,返回true,否则返回false。用法如:[ -x 文件名称 ];
7、-s:用于判断文件是否存在且文件大小是否大于0,文件存在且文件大小大于0时为真,返回true,否则返回false。用法如:[ -s 文件名称 ];
四、布尔运算符
1、!:表示非关系,条件结果取反,若条件结果为真,取反后则为假。用法如:[ ! 2020 -eq 2021 ]为true,[ ! 2020 -eq 2020 ]为false;
2、-a:表示与关系,在[]表达式中连接两个表达式一起所使用,若表达式中一个为假,则整个表达式为假,两个表达式全为真则整个表达式为真。用法如:[ 2020 -eq 2020 -a 2021 -eq 2021 ]为true。
3、-o:表示或关系,在[]表达式中连接两个表达式一起所使用,若表达式中有一个为真,则整个表达式为真,两个表达式全为假则整个表达式为假。用法如:[ 2020 -eq 2020 -o 2021 -eq 2022 ]为true。
五、逻辑判断运算符
shell脚本编程中逻辑判断符的主要有以下几种:
1、&&:表示逻辑和关系,在[[]]和(())表达式中或判断表达式中所使用,用于判断整个表达式是否为真时所使用。用法如:[[ 2020 -eq 2020 && 2021 -eq 2021 ]]为true,[[ 2020 ==2020 && 2021 == 2021 ]]为true,[ 2020 -eq 2020 ] && echo yes,表示如果&&前面表达式为true,执行echo yse表达式。
2、||:表示逻辑或关系,在[[]]和(())表达式中或判断表达式中所使用,用于判断整个表达式是否为真时所使用。用法如:[[ 2020 -eq 2020 || 2021 -eq 2022 ]]为true,[[ 2020 ==2020 || 2021 == 2021 ]]为true,[[ 2020 -eq 2021 ]] || echo no,表示如果||前面表达式为false,执行echo no表达式。
六、整数运算符
yum -y install bc
shell编程中整数运算符主要有以下几种:
1、+:表示加法。
2、-:表示减法。
3、*:表示乘法。
4、/:表示除法。
5、%:表示取余,即取两个整数相除的余数。