shell中的数学计算

一、使用方括号

#!/bin/bash
a=10
b=29
c=88res=$[$a * ($c-$b)]
echo $res

二、使用(())

echo $((1+9))
((i=1+2))
b=$((9-2*2))echo $((a+=1))
echo $((a**2)) #计算a的平方
echo $((8<9)) #输出1
echo $((i++))
echo $((RANDOM%61)) #产生一个不大于60的随机数

三、bc的用法

bc技术器实际上是一种编程语言,它可以识别:

数字(整数和浮点数)
变量(简单变量和数组)
注释(以#或C语言中的/* */开始的行)
表达式
编程语句(例如if-then语句)
函数

浮点运算是由内建变量scale控制的。必须将这个值设置为你希望在计算结果中保留的小数
位数,否则无法得到期望的结果。

$ bc -q
3.44 / 5
0
scale=4
3.44 / 5
.6880
quit
$

bc还能支持变量:

$ bc -q
var1=10
var1 * 4
40
var2 = var1 / 5
print var2
2
quit
$

脚本中使用bc:

方式一:

variable=$(echo "options; expression" | bc)

实例:

#!/bin/bash
var1=$(echo "scale=4; 3.44 / 5" | bc)
echo The answer is $var1

方式二,使用内联输入,格式:

variable=$(bc << EOF
options
statements
expressions
EOF
)

var1=10.46
var2=43.67
var3=33.2
var4=71
var5=$(bc << EOF
scale = 4
a1 = ( $var1 * $var2)
b1 = ($var3 * $var4)
a1 + b1
EOF
)

三、Shell中产生随机数的方法

1)通过系统变量RANDOM

#范围:0~3267,因此用于加密时加密性不太好
echo $RANDOM 

2)通过openssl产生随机字符串

openssl rand -base64 8

3)通过date产生

date +%s%N

4)通过/dev/urandom配合chksum

head /dev/urandom|cksum

四、常见用法

expr $a + 1 &> /dev/null #判断是否为数字的方法
RA=$?
expr $b + 2 &> /dev/null
RB=$?
if [ $RA -ne 0 -o $RB -ne 0 ];thenecho 'one of the input is not num!!!!'exit 1
fi

转载于:https://www.cnblogs.com/Shadowplay/p/8310290.html

Shell脚本笔记(三)shell中的数学计算相关推荐

  1. linux exec 脚本之家,详解Shell脚本中调用另一个Shell脚本的三种方式

    主要以下有几种方式: Command Explanation fork 新开一个子 Shell 执行,子 Shell 可以从父 Shell 继承环境变量,但是子 Shell 中的环境变量不会带回给父 ...

  2. linux查询日志中页面返回状态码,[linux shell] Shell脚本实现apache日志中的状态码分析...

    这篇文章主要介绍了Shell脚本实现apache日志中的状态码分析,本文先是介绍了按天切割日志的方法,然后给出了分析访问状态码的脚本,需要的朋友可以参考下 一.首先将apache日志按天切割 复制代码 ...

  3. ios重签名shell脚本_iOS逆向——shell重签名及代码注入

    感谢hank老师 上一章我们讲了应用签名原理和重签名原理,不再赘述,没有看过的同学可以点这里-- 这章概述shell脚本重签名.可能有的同学认为有很多工具都能快速的帮助我们重签名实现需求,但我更希望在 ...

  4. 【跟晓月学shell脚本】掌握shell脚本变量原理及概念

    前言 跟晓月一起学shell,死磕shell脚本,让shell脚本学习不再难. 想学习更多shell脚本的案例,可以前往我的师父的shell脚本专栏:shell脚本从入门到实战-案例篇 文章目录 前言 ...

  5. php shell脚本怎么写,Shell脚本编程入门

    一.什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_tut for ((i=0; i<10; i++)); do tou ...

  6. 【跟晓月学shell脚本】掌握shell脚本变量实战案例

    前言 上篇文章我们探讨了shell脚本变量的基本原理和概念,本篇我们基于上面的内容增加一些实战. 如果你还没有学习shell脚本的变量理论,可以点击链接:[跟晓月学shell脚本]掌握shell脚本变 ...

  7. R开发(part2)--R语言中的数学计算

    学习笔记,仅供参考,有错必纠 参考自:<R的极客理想>-- 张丹 文章目录 R开发 R语言中的数学计算 对数 加权平均.连乘.差分.秩.任意数.全体数 阶乘.组合.排列 累加.累乘.最小累 ...

  8. 用计算机怎么计算r角度,R语言中的数学计算

    原标题:R语言中的数学计算 前言 R是作为统计语言,生来就对数学有良好的支持,一个函数就能实现一种数学计算,所以用R语言做数学计算题特别方便.如果计算器中能嵌入R的计算函数,那么绝对是一种高科技产品. ...

  9. R语言中的数学计算(转载)

    R语言中的数学计算 关于作者: 张丹(Conan), 程序员Java,R,PHP,Javascript weibo:@Conan_Z blog: http://blog.fens.me email: ...

最新文章

  1. 运营商助力新型智慧城市建设
  2. css和js实现3d图片,JavaScript_纯JS实现旋转图片3D展示效果,CSS:style type=text/cssgt - phpStudy...
  3. Blockchain区块链架构设计之四:Fabric多通道和下一代账本设计
  4. Fiddler之Autoresponder替换(Web)
  5. 阿里技术官最新总结一份105道Java面试题小册,看完我惊呆了
  6. 开源开放 | 开源大学在线实践数据集及知识图谱MOOPer(CCKS2021)
  7. 2复数与复变函数(二)
  8. python数字求和为什么得不出结果_WPS表格求和问题,只出公式不出结果数字
  9. CSDN浏览器助手插件[少了很多糟心的广告]
  10. JAVA编程思想课程视频
  11. 【正点原子STM32连载】 第三十三章 光敏传感器实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
  12. xp系统计算机远程桌面连接不上,在XP系统中远程桌面连接不上的解决方式
  13. Oracle EBS 后台提交请求集 FND_SUBMIT.SUBMIT_PROGRAM
  14. 单元格中公式结果为0如何不显示0符号?
  15. 为什么我要选择使用Yarn来做Docker的调度引擎
  16. C语言中的指针以及二级指针
  17. Python3-标准库概览
  18. html5页面发送短信验证码,H5实现APP“输入短信验证码”效果
  19. 如何读jdk源码以及查找linux本地方法,例如DefaultSelectorProvider
  20. 2018年11月16日SQL Server实验内容(触发器实验)

热门文章

  1. Android图形子系统
  2. java 常用接口的实现--compareable
  3. poj 3384 Feng Shui 半平面交
  4. 【转自元宝兄】关于delphi Com+调用C# DLL的一点说明
  5. 聊聊高并发系统之队列术
  6. 语音识别框架最新进展——深度全序列卷积神经网络登场
  7. Numpy求均值、中位数、众数的方法
  8. 图解字符串的朴素模式匹配算法
  9. Java程序结合Aapche Ant进行远程服务器文件备份
  10. 基于python3的一次简单的请求url接口返回json类型结果实例。