首页 > 系统相关 >Shell中的数值运算

Shell中的数值运算

时间:2023-11-08 12:34:44浏览次数:32  
标签:opt 10 Shell 运算 数值 nsd2309 let root

  • 使用expr、$[ ]、let等整数运算工具:进行四则运算及求模结果
  • 使用bc实现小数运算操作h
1 整数运算工具
1.1 使用expr命令

乘法操作应采用 \* 转义,避免被作为Shell通配符;参与运算的整数值与运算操作符之间需要以空格分开,引用变量时必须加$符号。

首先随便定义变量比如a=10,b=20,然后计算a与b的加减乘除和求模运算结果:

[root@nsd2309 opt]# a=10
[root@nsd2309 opt]# b=20
[root@nsd2309 opt]# expr $a + $b			
30
[root@nsd2309 opt]# expr $a - $b
-10
[root@nsd2309 opt]# expr $a \* $b						#乘法运算,加'\'转义符
200
[root@nsd2309 opt]# expr $a / $b
0
[root@nsd2309 opt]# expr $b / $a
2
[root@nsd2309 opt]# expr $a % $b						#求余
10
[root@nsd2309 opt]#
1.2 使用$[]或$(())表达式

乘法操作*无需转义,运算符两侧可以无空格;引用变量可省略 $ 符号;计算结果替换表达式本身,可结合echo命令输出。

对于变量a=100,b=10;分别计算a与b的加减乘除和求模运算结果:

[root@nsd2309 opt]# a=100
[root@nsd2309 opt]# b=10
[root@nsd2309 opt]# echo $[a+b]
110
[root@nsd2309 opt]# echo $[a-b]
90
[root@nsd2309 opt]# echo $[a*b]
1000
[root@nsd2309 opt]# echo $[a/b]
10
[root@nsd2309 opt]# echo $[a%b]
0
[root@nsd2309 opt]# echo $[5%3]
2
1.3 使用let命令

expr或[],(())方式只进行运算,并不会改变变量的值;

而let命令可以直接对变量值做运算再保存新的值。

常规写法         主流写法
let a=a+1       let a++         #变量a加1
let a=a-1       let a--         #变量a减1

let a=a+10      let a+=10       #变量a加10
let a=a-10      let a-=10       #变量a减10

let a=a*2       let a*=2        #变量a乘以2
let a=a/2       let a/=2        #变量a除以2

let a=a%3       let a%=3        #变量a除以3取余数
2 小数运算工具
2.1 bc交互式运算

先执行bc命令进入交互环境,然后再输入需要计算的表达式。

[root@nsd2309 opt]# bc
2.2 bc非交互式运算

将需要运算的表达式通过管道操作交给bc运算。

注意,小数位的长度可采用scale=N限制。

[root@nsd2309 opt]# echo "1.1+1" | bc
2.1
[root@nsd2309 opt]# echo "10/3" | bc
3
[root@nsd2309 opt]# echo "scale=2;10/3" | bc      #scale可以定义结果是小数点后多少位
3.33


标签:opt,10,Shell,运算,数值,nsd2309,let,root
From: https://blog.51cto.com/u_16315529/8248325

相关文章

  • shell编程-流程控制
    拓展basename&dirnamebasename命令basename是去除目录后剩下的名字,取文件名例: [root@linux-server~]#temp=/home/temp/1.test[root@linux-server~]#base=`basename$temp`[root@linux-server~]#echo$base1.testdirname是获取目录名 例:[root@linux-server......
  • SQL Server 2005透视表运算符PIVOT应用示例
    SQLServer2005行列转换 有用SQL写过交叉报表的,往往都比较头痛,还好现在SQL2005中提供了新的PIVOT操作符,可以很简单地写出交叉数据查询。正好前两天在研究ORACLE最新的11G版本提供的新特性,发现ORACLE11G也同样推出这个新PIVOT,而且语法格式也几乎是一样的,呵,看来这些主流的数据库都......
  • 赋值运算符,比较运算符,逻辑运算符的应用
    print('-----------赋值运算------------')a=20b=30a=a+b#赋值运算:此处的a是经过20+30后再次赋值给aprint(a)#运行接轨a=50a+=b#这里的运算相当于a=a+b其运算结果为50+30=80print(a)#结果为80a-=b#这里的运算相当于a=a-b其运算结果为80-30......
  • C语言程序设计 运算符的优先级与结合性
     C运算符的优先级与结合优先级运算符含义参与运算对象的数目结合方向 1()[]->.圆括号运算符下标运算符指向结构体成员运算符结构体成员运算符双目运算符双目运算符双目运算符自左至右2!~+......
  • 虚拟机如何连网以及Xshell怎么连接虚拟机?
    问题1:虚拟机如何联网?在linux中,虚拟机联网需要进行以下步骤:在虚拟机中设置网络适配器为桥接模式,这样虚拟机就可以直接连接到物理网络上。在虚拟机中配置IP地址、子网掩码、网关和DNS服务器等网络参数,确保虚拟机能够正确地访问网络。在主机中关闭防火墙或者开放相应的端口,以允......
  • 修改PowerShell执行策略
    MicrosoftPowerShell执行策略定义何时可以运行脚本或加载配置文件。执行策略的可能值为:Restricted,AllSigned,RemoteSigned,Unrestricted,Bypass,Undefined.您可以使用以下命令检查当前执行策略设置:PowerCLIC:\>Get-ExecutionPolicySet-ExecutionPolicy-ExecutionPolicy......
  • Linux操作系统 虚拟机连接网络和xshell连接虚拟机
    虚拟机连接网络:桥接模式:1.编辑--虚拟网络编辑器--桥接模式--自动或指定具体网卡 2.设置--网络适配器--桥接模式 3.查看宿主机ip地址 4.配置linuxip地址5.配置的linux,ip地址和宿主机的IP地址,子网掩码,默认网关,dns都是一样6.重启网卡7.互ping8.pingwww.baidu.co......
  • 虚拟机连网及Xshell如何连接虚拟机
    一,虚拟机连网1,虚拟机设置,网络适配器改为NAT模式 2,如图,开启有线连接 3,如图,ping成功 二,Xshell连接虚拟机1,新建会话及属性设置,名称为虚拟机名称,主机处填虚拟机ip。 ip地址查看,点击箭头处。 点击设置的图标。 2,终端属性设置,编码类型选择UTF-8,否则可能导......
  • C/C++ __builtin 超实用位运算函数总结
    以__builtin开头的函数,是一种相当神奇的位运算函数,下面本人盘点了一下这些以__builtin开头的函数,希望可以帮到大家。1__builtin_ctz()/__buitlin_ctzll()用法:返回括号内数的二进制表示数末尾0的个数//eg:#include<bits/stdc++.h>usingnamespacestd;intmain......
  • 关于关于怎么样让自己的虚拟机连上网络,以及Xshell怎么连上虚拟机
    当你使用虚拟机来模拟不同的操作系统环境或进行开发和测试时,连接虚拟机到网络以及使用远程终端工具如Xshell是非常重要的。在本篇博客中,我将向你介绍如何使你的虚拟机连接到网络,以及如何使用Xshell来连接到虚拟机。连接虚拟机到网络在开始之前,确保你已经安装了虚拟机软件,比如VMwar......