算术运算
在Bash shell环境中,可以利用let、(( ))和[]执行基本的算术操作。而在进行高级操作时,
expr和bc这两个工具也会非常有用。
let命令可以直接执行基本的算术操作。当使用let时,变量名之前不需要再添加$,

[root@server0 ~]# a=5
[root@server0 ~]# let a++ #自加操作
[root@server0 ~]# echo $a
6
[root@server0 ~]# b=4
[root@server0 ~]# let b-- #自减操作
[root@server0 ~]# echo $b
3

[root@server0 ~]# x=1
[root@server0 ~]# y=2
[root@server0 ~]# let x+=100 #简写形式
[root@server0 ~]# let y-=100
[root@server0 ~]# echo $x
101
[root@server0 ~]# echo $y
-98

其它方法:
使用操作符[ ]
[root@server0 ~]# q=100
[root@server0 ~]# w=200
[root@server0 ~]# result=$[ q + w ]
[root@server0 ~]# echo $result
300
[root@server0 ~]# result2=$[ q + 123 ]
[root@server0 ~]# echo $result2
223
[root@server0 ~]# result3=[ $w + 1 ]
bash: 200: command not found...
[root@server0 ~]# result3=$[ $w + 1 ]
[root@server0 ~]# echo $result3
201

使用操作符(()),同上:
[root@server0 ~]# result4=(($q + 1))
-bash: syntax error near unexpected token `('
[root@server0 ~]# result4=(( $q + 1 ))
-bash: syntax error near unexpected token `('
[root@server0 ~]# result4=$(( $q + 1 )) #注意,括号前后有空格
[root@server0 ~]# echo $result4
101
[root@server0 ~]# result5=$(( q + 1 ))
[root@server0 ~]# echo $result5
101

使用expr方式
[root@server0 ~]# result6=`expr $q + 1 ` #中间可以引用变量
[root@server0 ~]# echo $result6
101
[root@server0 ~]# result7=`expr 1 + 2 `
[root@server0 ~]# echo $result7
3
[root@server0 ~]# result8=$(expr $w + 1) #括号加不加空格都不影响,但是
[root@server0 ~]# echo $result8
201
[root@server0 ~]# result8=$( expr $w +1 ) #但是算术运算符号左右一定要加空格
expr: syntax error
[root@server0 ~]# result8=$( expr $w+1 )
[root@server0 ~]# echo $result8
200+1
以上这些方法只能用于整数运算,而不支持浮点数。

bc命令:
bc是一个用于数学运算的高级工具,这个精密计算器包含了大量的选项。我们可以
借助它执行浮点数运算并应用一些高级函数:
[root@server0 ~]# no=54
[root@server0 ~]# result=`echo "$no * 1.5" | bc`
[root@server0 ~]# echo $result
81.0
[root@server0 ~]# echo "4 * 0.56" | bc
2.24
其他参数可以置于要执行的具体操作之前,同时以分号作为定界符,通过stdin传递给bc。
设定小数精度。在下面的例子中,参数scale=2将小数位个数设置为2。因此,
bc将会输出包含两个小数位的数值。
[root@server0 ~]# echo "scale=2;3/8" | bc
.37
进制转换。用bc可以将一种进制系统转换为另一种。来看看如何将十进制转换成
二进制,然后再将二进制转换回十进制:
[root@server0 ~]# no=100
[root@server0 ~]# echo "obase=2;$no" | bc
1100100
[root@server0 ~]# no2=1100100
[root@server0 ~]# echo "obase=10;ibase=2;$no2" | bc
100
计算平方以及平方根:
[root@server0 ~]# echo "sqrt(100)" | bc
10
[root@server0 ~]# echo "10^10" | bc
10000000000

shell笔记-算术运算的更多相关文章

  1. bash shell笔记1 脚本基础知识

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/505644 * ...

  2. Bash shell 笔记总结(一) 转自http://www.bubuko.com/infodetail-509992.html,谢谢原作者

    本文是上课笔记总结,涉及细节知识点会在以后文章说明! bash脚本编程: 脚本程序:解释器解释执行: shell: 交互式接口:编程环境: shell: 能够提供一些内部命令,并且能通过PATH环境变 ...

  3. Linux之Shell的算术运算

    在Bash的算术运算中有以下几种方法:名称                语法                    范例算术扩展            $((算术式))              r ...

  4. Bash shell 的算术运算有四种方式

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1:使用 expr 外部程式加法 r=`expr 4 + 5`echo $r注意! '4' '+' '5' 这三者之间要有空白r=`e ...

  5. Java中执行shell笔记

    在java中执行shell有好几种方式:第一种(exec)方式一 public static synchronized void runshell2() {    File superuser = n ...

  6. bash shell笔记7 创建函数

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/525126 知 ...

  7. Linux shell脚本算术运算和逻辑运算

    算术运算 默认不支持算数运算.所以需要特定的语法来完成, shell进行算数运算的工具: let declare (())或$(())或$[] bc let: 格式: let var=算术表达式 例如 ...

  8. shell笔记

    shell:俗称操作系统的"外壳",就是命令解释程序.     是用户与Linux内核之间的接口.     是负责与用户交互,分析.执行用户输入的命令,并给出结果或出错提示.    ...

  9. shell笔记-local、export用法 、declare、set

    local一般用于局部变量声明,多在在函数内部使用.     1.    Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止.     2. ...

随机推荐

  1. 一种开源的分布式消息系统Nats

    一种开源的分布式消息系统Nats 作者:chszs.未经博主同意不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs 1.NATS介绍 NATS是一个开源的 ...

  2. OpenCV教程(46) 快速特征检测

        在计算harris特征角时候,我们要在两个方向计算梯度,计算代价有点大.在paper The article by E. Rosten and T. Drummond, Machine lea ...

  3. storm的一些相关文章

    文章可以看这些: https://www.cnblogs.com/zhaojiankai/p/7257617.html https://blog.csdn.net/wangshuminjava/art ...

  4. Easyui1.3.4+IIS6.0+IE8兼容问题解决

    刚刚学习JQuery Easyui,就遇到了拦路虎,最新版本1.3.4下载下来部署到win2003 + IIS6.0中发现所有demo都不可以渲染,IE8提示错误如下: 详细内容如下: 用户代理: M ...

  5. 如何在Windows版的ScaleIO的节点中添加磁盘

    嗯, 为什么会有这个问题呢? 因为我要安装ScaleIO 1.32, 在使用Installation manager完成初始安装之后, 需要将一些磁盘添加到ScaleIO的storage pool中. ...

  6. bash: php: command not found

    bash: php: command not found 解决:export PATH=$PATH:/usr/local/php/bin

  7. Android -- DecorView

    DecorView 开发中,通常都是在onCreate()中调用setContentView(R.layout.custom_layout)来实现想要的页面布局.页面都是依附在窗口之上的,而Decor ...

  8. Wide and Deep Learning Model

    https://blog.csdn.net/starzhou/article/details/78845931 The Wide and Deep Learning Model(译文+Tensorlf ...

  9. OnBecameVisible和OnBecameInvisible ,OnWillRenderObject

    OnBecameVisible 和 OnBecameInvisible ,OnWillRenderObject 只有在所挂物体(不包括子物体)有render才有效 //可见 private void ...

  10. Flask莫名其妙特别慢

    其他上网都正常,代理服务器.防火墙反复检查都没问题,最后,严重怀疑腾讯的mysql服务器,监控是这样的: 突然下降那段就很不正常. 后面忽然就崩溃了,死活都连不上.把可疑连接都关闭了,把防火墙都关闭了 ...