shell算数运算

咖啡喝多了.估计今夜无眠了.妈蛋.技术分享

shell的算数运算.有太多了.包括很多网上可以下载到的工具.数不胜数.本文只选取常用的进行介绍.

1. $[ ] 这个可能用得比较少.包括我自己第一次见到这个一个东西的时候也很好奇.不过还真的能够达到效果.仅限于整形.不能用来计算浮点数.

缺点是计算有局限性.貌似职能计算加减乘除和模运算.

注:**表示的是幂运算.

技术分享

2. $(()) 我喜欢把这个叫做C语言模式.无论是在条件判断或者循环中,还是放在这里.变量都没有限制.仅限于整形,浮点数不能用这个表达式.

技术分享

3. let命令.顾名思义就是让var1=[...].之所以这样理解,是因为let的左值和右值都在let的右边.仅限于整形.浮点数不能用.

注意空格,let后面的表达式不能有空格.

技术分享

4. expr命令.和let不同.左值在expr左边,右边是表达式.仅限于整形,浮点数不能用.

注意空格,expr后面的参数之间必须有空格.

技术分享

希望上面的例子不会产生误导.那些运算仅仅是我所知道的.其实还可以有其它的运算,比如位运算.

以上的命令我们可以看到一个共同点,那就是不能计算浮点数,且运算能力有限.可是现实中这几个简单的功能远远不能满足我们的需求.怎么办.

当然同学们可以网上去找一个计算器,甚至带UI界面都可以.这里推荐一款super强大的计算机:bc

据说没有它完成不了的运算.不知道是不是真的.

5. bc  不同于上面的命令,它从标准输入接收表达式,然后把结果输出到标准输出.

技术分享

其实对于bc我所知道的也就这么几个.很多都得靠man来查找.而取进制这个功能,貌似man都找不到.我是在网上搜很久才找到的.也就是obase和ibase,二者分别代表输出的进制和输入的进制.

bc支持条件判断,移位操作.实现了部分函数.设置可以使用for等流程控制语句.可谓博大精深啊.无奈我值掌握了皮毛.

当然linux下的计算命令远不止这些,比如还可以输入calc.会弹出字符界面进行运算.只是我仅仅积累了这几种方式.

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。