shell笔记-算术运算
算术运算
在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笔记-算术运算的更多相关文章
- bash shell笔记1 脚本基础知识
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/505644 * ...
- Bash shell 笔记总结(一) 转自http://www.bubuko.com/infodetail-509992.html,谢谢原作者
本文是上课笔记总结,涉及细节知识点会在以后文章说明! bash脚本编程: 脚本程序:解释器解释执行: shell: 交互式接口:编程环境: shell: 能够提供一些内部命令,并且能通过PATH环境变 ...
- Linux之Shell的算术运算
在Bash的算术运算中有以下几种方法:名称 语法 范例算术扩展 $((算术式)) r ...
- Bash shell 的算术运算有四种方式
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1:使用 expr 外部程式加法 r=`expr 4 + 5`echo $r注意! '4' '+' '5' 这三者之间要有空白r=`e ...
- Java中执行shell笔记
在java中执行shell有好几种方式:第一种(exec)方式一 public static synchronized void runshell2() { File superuser = n ...
- bash shell笔记7 创建函数
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://twentyfour.blog.51cto.com/945260/525126 知 ...
- Linux shell脚本算术运算和逻辑运算
算术运算 默认不支持算数运算.所以需要特定的语法来完成, shell进行算数运算的工具: let declare (())或$(())或$[] bc let: 格式: let var=算术表达式 例如 ...
- shell笔记
shell:俗称操作系统的"外壳",就是命令解释程序. 是用户与Linux内核之间的接口. 是负责与用户交互,分析.执行用户输入的命令,并给出结果或出错提示. ...
- shell笔记-local、export用法 、declare、set
local一般用于局部变量声明,多在在函数内部使用. 1. Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止. 2. ...
随机推荐
- perf 高级命令简介
perf 高级命令简介 1.使用 tracepoint 当 perf 根据 tick 时间点进行采样后,人们便能够得到内核代码中的 hot spot. 使用ls命令来演示 sys_enter 这个tr ...
- Android - View的绘制流程一(measure)
该博文所用的demo结构图: 相应的代码: MainActivity.java: [java] view plain copy <span style="font-family:Mic ...
- PHP通用返回值设置
遇到一个不错的php代码.记录一下. 在写php代码时,经常会遇到需要返回值的情况,可以统一设置一下返回值的格式.下面就是一个不错的例子. 配置类Return.conf.php <?php de ...
- go语言之进阶篇方法值
1.方法值 示例: package main import "fmt" type Person struct { name string //名字 sex byte //性别, 字 ...
- VS2008 打开 VS2010解决方案及项目(转)
第一步,修改解决方案后缀为sln的文件 Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 201 ...
- 用css3实现风车效果
前面讲过css3可以替代很多js实现的效果,其实很多时候纯css3甚至可以替代图片,直接用css3就可以画出一些简单的图片.虽然css3画出来的图片效果可能不如直接用图片的好,实现起来也比较复杂,最麻 ...
- 用Visual C#来清空回收站(1)
视窗操作系统的回收站是对文件一种保护措施,他主要是作用是不言而喻的.在新的视窗2000系统之中,当我把文件删除到回收站中以后,按动"清空回收站"按钮,想清空回收站,此时往往提示&q ...
- StackPanel
StackPanel 的 HorizontalAlignment 属性和 VerticalAlignment 属性 默认情况下,这两个属性都被设置为 Stretch.
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二十三)Structured Streaming遇到问题:Set(TopicName-0) are gone. Some data may have been missed
事情经过:之前该topic(M_A)已经存在,而且正常使用structured streaming消费了一段时间,后来删除了topic(M_A),重新创建了topic(M-A),程序使用新创建的top ...
- centos:添加用户
初步进入centos学习,配置用户 1,创建用户 创建用户 hadoop [root@master spark]# useradd hadoop [root@master spark]# 2,创建密码 ...