在shell脚本中,有时候会需要对数值类型的变量进行计算,通常我们用的是(())

[root@localhost collect]# ((a=1+2))
[root@localhost collect]# echo $a
3
[root@localhost collect]# a=$((1+2+3))
[root@localhost collect]# echo $a
6
[root@localhost collect]# echo $((1+2+3+4))
10

但使用(())只能对整数进行数值计算,要想对浮点数进行计算则需使用bc

bc是linux下的计算器,它本身支持科学计算

[root@localhost collect]# echo "1+2"|bc
3
[root@localhost collect]# echo "1.3+2.2"|bc
3.5
[root@localhost collect]# echo "1.3*2.2"|bc
2.8
[root@localhost collect]# echo "2.5*4"|bc
10.0

这里再介绍linux下实现增量计算的有趣方法:变量++/– 和 ++/–变量

++/–放在变量的前面和后面效果差别很大:

[root@localhost collect]# a=1
[root@localhost collect]# echo $a
1
[root@localhost collect]# echo $((++a)) #先计算a+1,然后输出a
2
[root@localhost collect]# echo $a #这里a的值就是+1后的值
2
[root@localhost collect]# echo $((a++)) #先输出a,然后才计算a+1,所以这里a的值还是没有+1前的值
2
[root@localhost collect]# echo $a #这时候的变量a才是+1后的值
3
[root@localhost collect]# echo $((a--)) #同理,先输出a,再计算
3
[root@localhost collect]# echo $a
2
[root@localhost collect]# echo $((--a)) #先计算,再输出
1
[root@localhost collect]# echo $a
1

shell编程——变量的数值计算的更多相关文章

  1. shell编程变量赋值

    [shell编程变量赋值] 1.等号两边均不能有空格存在.例, a="hello world"   2.变量和其它文字以{}或空格格开,否则会混淆.例, 有时候变量名可能会和其它文 ...

  2. Linux_10------Linux之shell编程------变量

    .-9 vim num.sh #! /bin/bash num1=$1 num2=$2 sum=$(($num1+$num2)) #变量sum是num1和num2的综合 echo $sum 执行 ./ ...

  3. Linux Shell编程变量赋值和引用

    我们可以使用任意一种文字编辑器,比如gedit.kedit.emacs.vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行):   #!/bin/sh  ...  注意:最好使用“! ...

  4. shell编程—变量(三)

    在shell脚本中,变量分两种,系统变量和自定义变量. 系统默认变量是系统自带的一些变量,如path为路径变量 用户自定义变量为在编写吧脚本的时候自己定义的一些变量 变量名命名规则 首个字符必须为字母 ...

  5. SHELL (4) —— 变量的数值计算实践

    摘自:Oldboy Linux运维——SHELL编程实战 利用(())双括号进行比较及判断: [root@yeebian ~]# echo $((3<8)) 1 #1表示真. [root@yee ...

  6. shell 编程 变量

    转自:http://blog.csdn.net/qq504196282/article/details/52994249 shell之变量和引用 分类:SHELL编程基础 (470)  (0)  举报 ...

  7. shell编程-变量

    Shell支持自定义变量. 定义变量 定义变量时,变量名不加美元符号($),如: VALUE=“tmp” 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样.同时,变量名的命名须遵 ...

  8. shell基础--变量的数值计算

    变量的数值计算 1.$((表达式)) (1).实验1 [root@~_~ day4]# cat test.sh #!/bin/bash a=6 b=2 echo "a-b=$(($a-$b) ...

  9. shell编程变量介绍与表达式详解

    shell变量简介 变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据.脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell 变量也遵循这个规则. 在 Bash shell ...

随机推荐

  1. 字符编码:ASCII,Unicode和UTF-8

    字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识. 1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两 ...

  2. simulink pi的方法产生锁相环

    pi方法就是比例积分方法,关于pi方法介绍参考http://www.elecfans.com/dianzichangshi/20120909287851.html 锁相环pi方法原理参考http:// ...

  3. drone 学习四 几个有用的命令

    1. 安装cli 工具 linux curl -L https://github.com/drone/drone-cli/releases/download/v0.8.5/drone_linux_am ...

  4. 新版eclipse编写Android 时常常报的错误 -support-v7

    一..和以往一样新建完一个Android项目之后.会报android.support.v4.. . . 或者V7找不到的错误.   这是由于这两个包在还有一个附带的项目(android-support ...

  5. Android 从上层到底层-----kernel层

    CPU:RK3288 系统:Android 5.1 功能:上层 app 控制 led 亮灭 开发板:Firefly RK3288 1.在dts文件中增加 led 设备 path:kernel/arch ...

  6. erlang异常处理备忘

    捕获所有异常得用_:_,看例子 try aa:bb() of Value -> Value catch _:_ -> "" end 如果单表达式不需要有返回值,直接异常 ...

  7. golang调用动态库

    测试动态库 test_so.h int test_so_func(int a,int b); test_so.c #include "test_so.h" int test_so_ ...

  8. 【Leetcode 338】 Counting Bits

    问题描述:给出一个非负整数num,对[0, num]范围内每个数都计算它的二进制表示中1的个数 Example:For num = 5 you should return [0,1,1,2,1,2] ...

  9. ASP.NET Redis 开发 入门

    ASP.NET Redis 开发   文件并发(日志处理)--队列--Redis+Log4Net Redis简介 Redis是一个开源的,使用C语言编写,面向“键/值”对类型数据的分布式NoSQL数据 ...

  10. cpp分解质因数

    原理有点像埃氏筛. #include <stdio.h> #include <iostream> #include <stdlib.h> using namespa ...