Shell中的运算符
来源:互联网 发布:win7装linux 编辑:程序博客网 时间:2024/05/17 22:27
Shell中也可以实现基本算术运算,以及位运算。
我们总结起来有如下几点:
1)基本的算术运算符:+、-、*、/、**都支持,最后的**是幂运算;
2)算术运算要和一些命令结合才能使用,如expr`...`命令,$((...))命令,$[...]命令,let命令,注意:expr后面是反引号;
3)一定要注意所有运算符两边都要有空格,比如result=`expr 2 + 3`就是正确的,如果是result=`expr 2+3`就是错误的!其余的运算符也是需要空格隔开!!
4)运算公式中的括号运算、乘法运算一定要加转移符斜杠,即result=`expr \( 2 + 3 \) \* 5`才正确,除法运算不需要;
5)expr不可以做幂运算;
#-----------------------------/chapter4/ex4-28.sh------------------#! /bin/sh#计算2和100的差,即-98result=`expr 2 - 100`echo "$result"#计算2和100的和,即102result=`expr 2 + 100`echo "$result"#计算2和5的乘积,即10,乘号一定要加转移符反斜杠result=`expr 2 \* 5`echo "$result"#计算24和8的商,即3result=`expr 24 / 8`echo "$result"#先计算2和6的差,然后再乘以12,即-48,括号一定要加转移符反斜杠result=`expr \( 2 - 6 \) \* 12`echo "$result"#错误的语法result=`expr 2+5`echo "$result"#错误的语法result=`expr 2-4*9`echo "$result"#错误的语法result=`expr 1-(4-7)`echo "$result"
6)使用$((...))也可以完成算法书运算,而且不需要对运算符和括号做转义处理!也不需要严格规定运算符两端加空格,空格可加可不加。如下:
#-----------------------------/chapter4/ex4-29.sh------------------#! /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"
所以,使用$((...))的形式更适合做算术运算。
7)使用$[...]的形式和上面$((...))的形式一样,较常用;
#-----------------------------/chapter4/ex4-30.sh------------------#! /bin/sh#加法运算result=$[4+5]echo "$result"#复合运算result=$[(1+2)*3]echo "$result"#幂运算result=$[ 2 ** 4 ]echo "$result"
8)let也可以实现算术运算。let后面直接接运算表达式,运算式中的变量不需要加$,直接使用,如下:
#-----------------------------/chapter4/ex4-31.sh------------------#! /bin/sh#定义变量n=10#加法运算let n=n+1echo "$n"#乘法运算let n=n*10echo "$n"#幂运算let n=n**2echo "$n"
9)除了基本运算发之外,Shell还支持符合算术符:+=、-=、*=、/=、%=,以及位运算符:<<、>>、&、|、~、^、<<=、>>=、&=、|=、^=,还有自增++、自减--运算;
1 0
- Shell中的运算符
- shell中的比较运算符
- shell中的变量及运算符
- Shell中的运算符和表达式
- SHELL 中的浮点运算
- shell中的数学运算
- shell中的算数运算
- shell中的数学运算
- shell 中的算术运算
- shell 中的算术运算
- Shell脚本中的运算
- shell中的数学运算
- shell中的数学运算
- shell中的基本运算
- shell中的算术运算
- shell中的算术运算
- shell脚本中的数值运算
- shell脚本中的算术运算
- QT编译错误
- Gradle第二章:概述
- JavaScript文件处理:文件读取
- #include< >和#include""的区别
- 【嵌入式开发板】迅为iTOP-4412开发板板及资料介绍
- Shell中的运算符
- 从一个控制器返回后,控制器所属的tabbarController没选中(tabbarItem图标不亮)
- GPG key retrieval failed: [Errno 14] Could not open/read file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
- iOS:分类、协议、代理
- 第十周——面向对象——继承与派生——项目一(2)储存班长信息的学生类
- HDU 5228 【水题】
- Caused by: org.xml.sax.SAXParseException: The content of elements must consist of well-formed charac
- mongo命令
- Sublime Text 2 设置文件详解