shell常用运算

一、整数比较运算符

讲解整数运算比较符之前,我们得先讲讲运算符的用法,其用法结合表达式进行使用,而表达式的具体使用如下:
表达式形式

[ 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、%:表示取余,即取两个整数相除的余数。