shell脚本:运算符

一、算术运算符

原生bash不支持简单的数学运算,但是可以通过 expr 命令来实现表达式的求值操作。

#!/bin/bash

val=`expr 2 + 2`
echo "两数之和为 : $val"

注意:

  • 表达式和运算符之间要有空格。例如 2+2 是不对的,必须写成 2 + 2。
  • 使用的是反引号(Esc键下面那个),而不是单引号。
a=10
b=20

val=`expr $a + $b`
echo "a + b : $val"

val=`expr $a - $b`
echo "a - b : $val"

val=`expr $a \* $b`    #乘号(*)前边必须加反斜杠(\)
echo "a * b : $val"

val=`expr $b / $a`
echo "b / a : $val"

val=`expr $b % $a`
echo "b % a : $val"

if [ $a == $b ]
then
   echo "a 等于 b"
fi

if [ $a != $b ]
then
   echo "a 不等于 b"
fi


二、关系运算符

关系运算符只支持数字,不支持字符串,除非字符串的值是数字。

  • -eq:左右是否相等
  • -ne:左右是否不相等
  • -gt:左 > 右 ?
  • -lt:左 < 右 ?
  • -ge:左 >= 右 ?
  • -le:左 <= 右 ?
a=40

if [ $a -lt 80 ]
then
	echo "a >= 80"
else 
	echo "a < 80"
fi

if [ $a -gt 20 ]
then
	echo "a > 20"
else 
	echo "a < 20"
fi

 


三、布尔运算符

  • !:非
  • -o:或
  • -a:与
a=40

if [ $a -lt 80 -a $a -gt 20 ]
then
	echo "20 < a < 80"
else 
	echo "no"
fi

四、逻辑运算符

  • &&
  • ||
a=40

if [[ $a -lt 80 && $a -gt 20 ]]
then
	echo "20 < a < 80"
else 
	echo "no"
fi

注意这里加了两层括号。


五、字符串运算符

  • =:字符串是否相等
  • !=:字符串是否不相等
  • -z:字符串长度是否为0
  • -n:字符串长度是否不为0
  • $:字符串是否为空
a="abc"
b="efg"

if [ $a = $b ]
then
   echo "$a = $b : a 等于 b"
else
   echo "$a = $b: a 不等于 b"
fi

if [ $a != $b ]
then
   echo "$a != $b : a 不等于 b"
else
   echo "$a != $b: a 等于 b"
fi

if [ -z $a ]
then
   echo "-z $a : 字符串长度为 0"
else
   echo "-z $a : 字符串长度不为 0"
fi

if [ -n "$a" ]
then
   echo "-n $a : 字符串长度不为 0"
else
   echo "-n $a : 字符串长度为 0"
fi

if [ $a ]
then
   echo "$a : 字符串不为空"
else
   echo "$a : 字符串为空"
fi

echo "----------"

a=""

if [ $a ]
then
   echo "$a : 字符串不为空"
else
   echo "$a : 字符串为空"
fi

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值