Linux shell学习(5)shell运算符

shell的运算符包括:

  • 算数运算符
  • 关系运算符
  • 布尔运算符
  • 字符串运算符
  • 文件测试运算符

算数运算符

可以使用expr或者$(( ))来实现基本的算数运算
下面的脚本包含了所有的算术运算符的用法

echo `expr 1 + 2`	# 加
echo `expr 1 - 2`	# 减
echo `expr 2 \* 3`	# 乘
echo `expr 4 / 2`	# 除
echo `expr 10 % 3`	# 取余
a=10
b=11
c=$a	# 赋值
if [ $b == $c ]		# 相等
then
        echo true
fi
if [ $b != $c ]		# 不等
then
        echo false
fi

注意:

  1. 因为expr不是bash内置的函数,因此使用expr的时候需要加反引号` `
  2. 乘法需要写作 \*,如果使用$(( ))则不需要这么写
  3. 所有表达式中的运算符和参数以及[ ]之间必须有空格隔开

关系运算符

运算符 作用
-eq 相等
-ne 不相等
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于

示例:

a=10
b=11
c=12
if [ $b -eq $c ]
then
        echo true
fi
if [ $b -ne $c ]
then
        echo false
fi
if [ $a -gt $c ]
then
        echo true
fi
if [ $a -lt $c ]
then
        echo true
fi
if [ $b -ge $c ]
then
        echo true
fi
if [ $b -le $c ]
then
        echo true
fi

布尔运算符

运算符 含义
-a 或者 &&
-o 或者 ||
!

示例:

if [ !false ]
if [ $b -gt $a -a $c -gt $a ]	# b>a && c>a
if [[ $b -gt $a && $c -gt $a ]]	# b>a && c>a
if [ $b -lt $a -o $c -lt $a ]	# b<a || c<a
if [[ $b -lt $a || $c -lt $a ]]	# b<a || c<a
  • 注意:使用&&和||的时候需要多加一个括号来代表整体

字符串运算符

运算符 含义
= 字符串相等
!= 字符串不相等
-z 判断字符串长度是否为0,为0返回true
-n 判断字符串长度是否为0,为0返回false
$ 检测字符串是否为空,不为空返回true

示例:

arr1="abc"
arr2="abd"
arr3=""
if [ $arr1 = $arr2  ]
then
        echo "arr1=arr2"
fi
if [ $arr1 != $arr2 ]
then
        echo "arr1!=arr2"
fi
if [ -z $arr3 ]
then
        echo "arr3为空"
fi
if [ -n "$arr3" ]
then
        echo "arr3为空"
fi

文件测试运算符

在这里插入图片描述

原创文章 187 获赞 29 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_43826242/article/details/104207022