shell(四)运算符

102 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第4天,点击查看活动详情

前面我们说了变量和字符串了,也就算说明了shell的一个基础的数据结构,说完数据了,就需要操作数据,下面看下数据的运算符;

字符串运算符

首先我们看下字符串运算符,先看下具体的几个运算符,我们从网上找下图片;

他一共五个,对于下面的-z,-n判断长度是否为0的这个用法可以选择记忆,也可以用上讲的获取长度然后判断,都可以;

if [ ${#ss} -gt 0 ]  ##表示ss的长度是否大于0

我们看看上面的字符串的用法,都很简单的;写几个例子说明一下,注意哈,这个玩意只能写if里不能写在某个输出语句后,它会原样输出的;

#!/bin/bash
ab="ciaoming"
ac="cm"
ae="ciaoming"
if [ $ab = $ac ]
then
echo "$ab = $ac: true"
else
echo "$ab = $ac: false"
fi
if [ $ab = $ae ]
then
echo "$ab = $ae: true"
else
echo "$ab = $ae: false"
fi
if [ $ab != $ac ]
then
echo "$ab != $ac: true"
else
echo "$ab != $ac: false"
fi

最后的输出结果是:

ciaoming = cm: false
ciaoming = ciaoming: true
ciaoming != cm: true

对于字符串的运算符我们大概就说这些,还是那句话,不难,但记不住

算术运算符

我们看看算数的基本操作吧,这个还是挺重要的,对于算数运算符我们可以有几种的计算方法;大概看下;

首先是expr关键字,我们这里通通以“+”来举例,然后用"`"符号来进行包裹,看下用例(注意这里的空格哈)格式是**`expr a + b`**;

va=`expr 12 + 3`
echo $va

这里输出的是15,第二种方法的格式是**$((a + b))**;

va2=$(($va+1))
echo $va2

这里输出的是16,第三种方法的格式是**$[a+b]**;

va3=$[$va+2]
echo $va3

这里输出的是17,

对于expr表达式的的*,我们需要用**\*;(())则不需要用,所以我就倾向于这个的表达式了;对于这几个算术运算符,(())**则不需要用,所以我就倾向于这个的表达式了;对于这几个算术运算符,**(())效率最高,也可以用let**,等同于**(())(())**,**[]**这几个都是整数运算,如果想要小数运算,则可能需要系统指令或者awk了,不过我们一般写的脚本应该也不会干这事;

关系运算符

关系运算符不同于我们的开发语言那样,对于双引号包裹的数字串串,也是可以和数字进行判断的,这算一个方便的点,具体的几个我们看下图;

这里我们以**-gt**举例看下数字与字符串数字的比较:

v="12"
if [ $v -gt 3 ]
then
echo "大于"
fi

输出:大于;

以上就是大概的几个常用的运算符,还有比如boolean的运算符--!&||的运算我们就不说了,只说这些常用的,如果你的shell脚本需要操作文件的话,可能得看下文件的运算符,我们后面用到再说,好啦🥗🥗🥗;

结束结束,那就🛴🛴🛴