bash shell中的数学计算

简介

在写shell脚本的时候会用到很多的数学运算,简单的一个游标+1 -1, 或者更多一点的浮点运算等,shell中数学计算稍麻烦,我想每个人都试过var=1+1 或者var=$xxx+1这类错误。 下面对shell中做数学计算小做总结

示例

 

  • 使用expr整数运算
    > var=1
    > var=`expr $var + 1`
    > echo $var
    2

其他的减乘除类似, 要注意乘法中的*号需要做转义\*即可

  • 使用bash内建命令let
    > var=2
    > let "var=var+1"
    > echo $var
    3
    > let "var=(2+2-1)/2"
    > echo $var
    1
  • 使用大括号或者小括号
    > var=3
    > var=$((var+1))
    > echo $var
    4
    > var=$[var+1]
    > echo $var
    5
  • 浮点运算可以用bc或者awk等程序

bc更常用, 对运算来说也更好用一些,可以直接命令行使用:

> bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1+1
2
1+1.1
2.1
1.1212*1.12
1.2557

也可以在标准输入作为输入,bc会把结果输出到标准输出:

> echo "2+1-5*1.111" | bc
-2.555

还可以用here-doc的方式把表达式传给bc

> bc <<< "1+2+3+3.3333"
9.3333

bc在计算上还有很多强大的功能, 具体信息可以看下manpage,比如scale

> echo "scale=1;(1/3)" | bc
.3
> echo "scale=10;(1/3)" | bc
.3333333333

awk也可以做算数计算,也支持浮点计算:

> var=1
> var=`echo "$var 5"|awk '{printf("%g",$1+$2)}'`
> echo $var
6
时间: 2024-09-14 21:16:37

bash shell中的数学计算的相关文章

Linux bash Shell中的变量类型详解

  这篇文章主要介绍了Linux bash Shell中的变量类型详解,变量类型共分为本地变量.局部变量.环境变量.位置变量和特殊变量等,需要的朋友可以参考下 在Linux系统中进行日常运维或者是编写脚本时,变量是再熟悉不过的了,但这些变量都有哪些类型,具体的用法又有哪些差异呢?本文整理分享给大家: 一.bash变量类型: 本地变量 局部变量 环境变量 位置变量 特殊变量(内置) 二.本地变量: varname=value:作用域为整个bash进程可以使用; 变量命名规范: 1. 只能含字母.数

Bash Shell中Shift用法分享

这篇文章主要介绍了Bash Shell中Shift的使用方法,需要的朋友可以参考下   shift可以用来向左移动位置参数. Shell的名字 $0 第一个参数 $1 第二个参数 $2 第n个参数 $n 所有参数 $@ 或 $* 参数个数 $# shift默认是shift 1 以下边为例: 复制代码 代码如下: cat shift.sh #----------------------------输出文字-开始---------------------------- #!/bin/bash unt

《R的极客理想——高级开发篇 A》一一1.2 R语言中的数学计算

1.2 R语言中的数学计算 问题 如何用R语言进行数学计算? 引言 R语言是统计语言,生来就对数学有良好的支持,用R语言做数学的计算题特别方便.如果计算器中能嵌入R语言的计算函数,那么绝对是一种高科技产品.我真的把R语言当成我的计算器了!1.2.1 基本计算 R语言对数学计算有着非常好的支持,本节将完整介绍初等数学中的各种计算操作. 本节的系统环境是: Windows 7 64bit R: 3.1.1 x86_64-w64-mingw32/x64 (64-bit) 用R语言实现四则运算操作,包括

linux bash shell中case语句的实例_linux shell

bash case语句的例子. 分享一段bash shell代码,对于学习bash的同学理解case语句的用法,会有帮助. 例子: 复制代码 代码如下: #!/bin/bash### Program:# File operation# 1.) Open file 2.) Display file 3.) Edit file 4.) Delete file# site: WWW.JB51.NETPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/u

Linux bash Shell中的变量类型详解_linux shell

在Linux系统中进行日常运维或者是编写脚本时,变量是再熟悉不过的了,但这些变量都有哪些类型,具体的用法又有哪些差异呢?本文整理分享给大家: 一.bash变量类型: 本地变量 局部变量 环境变量 位置变量 特殊变量(内置) 二.本地变量: varname=value:作用域为整个bash进程可以使用: 变量命名规范: 1. 只能含字母.数字和下划线,并且以字母和下划线开头 2. 最好不要跟系统已有的环境变量重名 3. 见名知意 三.局部变量: local varname=value:作用域为当前

Bash Shell中忽略大小写的设置方法_linux shell

大多数人在使用 Bash 时,都会对其进行改造,因为默认的设置真的好难用- 参考以下 ~/.inputrc 设置: 复制代码 代码如下: # do not show hidden files in the list set match-hidden-files off   # auto complete ignoring case set show-all-if-ambiguous on set completion-ignore-case on "\ep": history-sear

Bash Shell中Shift用法分享_linux shell

shift可以用来向左移动位置参数.Shell的名字 $0第一个参数 $1第二个参数 $2第n个参数 $n所有参数 $@ 或 $*参数个数 $# shift默认是shift 1以下边为例: 复制代码 代码如下: cat shift.sh#----------------------------输出文字-开始----------------------------#!/bin/bashuntil [ -z "$1" ]  # Until all parameters used updo 

JS中的数学计算&lt;之简单实例讲解&gt;

1.取余数   % var a=10%3; //a=1   2.取绝对值  Math.abs() var a=Math.abs(-102.1); var b=Math.abs(102.1); //a=102.1;b=102.1   3.截取小数点后长度并进行四舍五入 toFixed() var num_1 = new Number(13.53); alert(num_1.toFixed(1)); alert(num_1.toFixed(0)); //13.5 //14 var num_2 = n

Linux系统中bash shell编程的10个基础问题讲解_linux shell

第1问:为何叫做shell?在介绍 shell 是什么东西之前,不妨让我们重新审视使用者与电脑的关系.我们知道电脑的运作不能离开硬件,但使用者却无法直接对硬件作驱动,硬件的驱动只能透过一个称为"操作系统(Operating System)"的软件来控管,事实上,我们每天所谈的linux,严格来说只是一个操作系统,我们称之为"核心(kernel)".然而,从使用者的角度来说,使用者也没办法直接操作kernel,而是透过kernel的"外壳"程序,也