每天进步一点点,从量变到质量。
今天讲讲shell编程中的运算符。学过例如c,java等语言的人可能都知道运算符是啥个东东,也知道如何使用各种运算符。不过,shell的运算符和其他大部分编程语言还是有那么一点点差别的。不信你往下看。
先说说讲的大体内容
估计可能还有些人不清除啥是算术运算符、啥是关系运算符。说白了算术运算符就是最基本的那些运算符,即加减乘除、取余、赋值(=)等这些基本的、最常用的运算符。
对于shell中数与数之间的运算还是和其他语言有那么一点区别。例如要你算a=5+10。可能在别的语言中,你直接
a=5+10
就可以了。但是很抱歉,在shell中行不通。如果你这样写,在shell中a的值不是15,a的值就是”5+10”这个字符串。
所以我们需要借助其他命令来实现,如awk和expr这些命令。其中expr算是用的比较多,因此,我们也用expr这个命令来解决数值之间的运算。至于怎么用,简单粗暴,直接看程序:
#!/bin/bash
a=`expr 5 + 10`
echo "a=$a"
执行脚本的结果
a=15
注意点
等号之间不能有空格 表达式expr以及加号+与数值之间要有空格 使用的是反引号`把他们圈起来,而不是单引号。
问题:为啥他们之间要有空格? 考考你。
下面我演示一下加减乘除。
#!/bin/bash
a=20
b=40
#加法
c=`expr $a + $b`
echo "a+b=$c"
#减法
c=`expr $a - $b`
echo "a-b=$c"
#乘法,注意有个\
c=`expr $a \* $b`
echo "a*b=$c"
#除法
c=`expr $a / $b`
echo "a/b=$c"
输出结果
a+b=40
a-b=-20
a*b=800
a/b=2
注意点
关系运算符就是用来比较两个数之间的大小的。不过需要注意的是,我下面列举的关系运算符是不支持字符串的,除非字符串的值是数字
常用关系运算符如下:
直接看程序,相信你们看一下就知道如何使用了,这些都挺简单,没有什么好详细讲的。
a=10
b=20
if [ $a -eq $b ]
then
echo "相等"
else
echo "不相等"
fi #记得加上fi代表结束
输出结果:
不相等
我就演示一个,其他类似。
下面列举一些常用于字符串的运算符
简单暴力,直接代码演示,相信聪明的你们一眼就知道怎么用了
#!/bin/bash
a="aa"
b="bb"
if [ $a = $b ]
then
echo "a与b相等"
else
echo "a与b不相等"
fi
if [ -z $a ]
then
echo "a字符串的长度为0"
else
echo "a字符串的长度不为0"
fi
输出结果:
a与b不相等
a字符串的长度不为0
大家多动手试试勒