shell运算符
基础运算符
+ : 加
-:减
*:乘
/:除
%:取余
# 取余案例
echo $((RANDDM%10))
# 自增案例
for ((i=1;i<=10;i++));do
echo $i
done
逻辑符号
&& : 且
|| :或
! :非
所有符号
+ - # 加号,减号,一般用于整型、浮点型的运算,其他语言中也可以做字符串的拼接
* / % # 乘号 除号 取余 一般用于运算
** # 幂运算
++ -- # 自加 自减 ,可前置也可以后置,默认步长为1
n+=2 n=n+2
n-=2 n=n-2
n*=2 n=n*2
n/=2 n=n/2
n%=2 n=n%2
== :等于 # equal -eq
< :小于 # less than -lt
> :大于 # greate than -gt
<= :小于等于 # less equal -le
>= :大于等于 # greate equal -qe
<> 或 != :不等于 # not equal -ne
# 复制符号
=: 赋值符号
==: 运算符号 等于
>> :向左位移
<< :向右位移
~、!、&、^ :按位取反 按位异或 按位与 按位或
运算方式
(())
[root@m01 ~]# echo $((1+1))
2
let
[root@m01 ~]# let a=2*8
[root@m01 ~]# echo $a
16
expr
[root@m01 ~]# expr 1 + 1
2
[root@m01 ~]# expr 99 \* 99
9801
# 乘号要加转义符
bc
[root@m01 ~]# echo '1+9' | bc
10
# 进制装换
[root@m01 ~]# echo 'obase=2;192' | bc
11000000
[root@m01 ~]# echo 'obase=16;192' | bc
C0
$[]
awk
[root@m01 ~]# awk 'BEGIN {print 99+1,99*2,99/2}'
100 198 49.5
作业
if [ $# -eq 2 ];then
expr $1 + $2 &> /dev/null
if [ $? -eq 0 ];then
expr $1 + $2
expr $1 \* $2
expr $1 / $2
expr $1 - $2
else
echo '输入数字'
fi
else
echo '请输入两个参数'
fi