一 算术运算符:shell
+ - * / %(取余) **(幂)express
1.1 expr计算某个表达式值bash
expr expression(expr不能计算幂运算)io
例子:变量
#!/bin/bash语法
#计算2和100的差,即-98引用
result=`expr 2 -100`二进制
echo"$result"字符
#计算2和100的和,即102let
result=`expr 2 +100`
echo"$result"
#计算2和5的乘积,即10
result=`expr 2 \*5`
echo"$result"
#计算24和8的商,即3
result=`expr 24 /8`
echo"$result"
#先计算2和6的差,而后再乘以12,即-48
result=`expr \( 2- 6 \) \* 12`
echo"$result"
#错误的语法,没有空格
result=`expr 2+5`
echo"$result"
#错误的语法
result=`expr2-4*9`
echo"$result"
#错误的语法
result=`expr1-(4-7)`
echo"$result"
1.2 用$(())计算:
#! /bin/sh
#紧凑格式,计算3和6的和
result=$((3+6))
echo"$result"
#松散格式,计算3和9的和
result=$(( 3 + 9))
echo"$result"
#计算3和6的乘积
reuslt=$(( 3 * 6))
echo"$result"
#计算7和5的商
result=$(( 7 / 5))
echo"$result"
#计算8和3的余数
result=$(( 8 % 3))
echo"$result"
#复合运算
result=$(( ( 1-4 )* 5 ))
echo"$result"
1.3 用$[ ]计算
#! /bin/sh
#加法运算
result=$[4+5]
echo"$result"
#复合运算
result=$[(1+2)*3]
echo"$result"
#幂运算
result=$[ 2 ** 4 ]
echo"$result"
1.4 用let命令计算
let命令可执行一个或多个算术表达式,变量名无需$,若是表达式有空格或其余特殊字符,引用起来。
#! /bin/sh
#定义变量
n=10
#加法运算
let n=n+1
echo"$n"
#乘法运算
let n=n*10
echo"$n"
#幂运算
let n=n**2
echo"$n"
二 位运算符
<<左移
>>右移
&按位与
| 位或
~位非
^位异或
2.1自增自减运算符:
++varibale 先加1,再赋给variable
--variable 先减1,再赋给variable
vaiable++ 先用variable,再加1
variable-- 先用variable,再减1
2.2数字常量的进制:
默认状况下,shell以十进制表示数字,也可用二进制,八进制,十六进制。
增长前缀:0表示8进制,0x表示十六进制
井号#:2#100表示2进制,8#42表示8进制