在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. VS 编译太慢了吗?新建解决方案配置关闭一部分项目的编译

    手头的解决方案真大!里面的项目个数达到了 30 个或是 50 个?然而接近一半是单元测试项目和辅助工具.再加上一些不尽如人意的项目优化,编译速度真的是无力吐槽.幸好 Visual Studio 提供了 ...

  2. ResultSet.TYPE_SCROLL_SENSITIVE到底发生了什么?

    转自:https://blog.csdn.net/axman/article/details/3984103 这个问题我在几年前说过,但今天再次从CSDN上看到有人问这个问题,可以看出,真正懂这个问题 ...

  3. 接口测试框架——第四篇-url、excel内容等

    到现在为止,发送邮件(email_module).读excel(excel_module).发送requests(requests_module).常量(setting)我们都已经完成了,看看第一篇中 ...

  4. 淘宝npm镜像使用

    淘宝NPM镜像使用 镜像使用方法 1.config命令 npm config set registry https://registry.npm.taobao.org npm info undersc ...

  5. Hyper-V 手动导入虚机配置实例(转载)

    原文转载:http://blog.51cto.com/bobzy/980241 Hyper-V提供了很方便的虚机导入和导出功能.平时假如我们想导出虚机,先选中虚机,然后鼠标右键在出现菜单列表中选中“导 ...

  6. centos下svn的主要常用命令(解决商城系统添加的文件无法自动更新至svn服务器)

    问题描述: 在商城中通过网页上传的png文件无法自动添加到版本库中. 查找过程: 通过程序分析,增加的主要是数据文件,主要分布在data目录中. svn list /home/ggg --depth= ...

  7. wdlinux中apache配置反向代理模块

    想要在.htaccess中开启反向代理功能都不行[apache中没有mod_proxy模块] .htaccess 文件内容如下 RewriteEngine On RewriteBase / Rewri ...

  8. SecureCRT上传下载文件教程(Zmodem使用教程)

    SecureCRT是一个仿真终端连接工具.它可以方便的连接SSH服务器,远程管理Linux.同时,它还能使用多种协议方便的上传下载文件.其中Zmodem是SecureCRT支持比较好的一种古老的上传下 ...

  9. C语言的补码表示和unsigned及signed的转换

    这东西实际编程时一直无视的,范围小了就换个大点的表示形式,但是总觉得基础知识还是掌握得好,免得到时候用移位运算或类型转换或笔试题时要花时间想. C语言的基本类型有char.int.float.doub ...

  10. Springboot监控之一:SpringBoot四大神器之Actuator之2--springboot健康检查

    Health 信息是从 ApplicationContext 中所有的 HealthIndicator 的 Bean 中收集的, Spring Boot 内置了一些 HealthIndicator. ...