数学运算之 expr

expr操作符对照表

比较大小,只能对整数进行比较,需要加空格,linux 保留关键字要转义

num1=30
num2=50
expr $num1 \> $num2

查看上一条命令有没有执行成功

echo $?

返回0 成功,其他失败

小于、小于等于、大于等于

expr $num1 \< $num2
expr $num1 \<= $num2
expr $num1 \>= $num2

运算 加、减、乘、除

# 加
num1=17
num2=5
expr $num1 + $num2# 减
num3=`expr $num1 + $num2`
echo $num3expr $num1 - $num2# 乘
expr $num1 \* $num2
expr $num1 / $num2# 取余数
expr $num1 % $num2

  

 需要注意事项:

两个小括号的计算方法,要赋值,否则会报错

# 直接输出报错
$(($num1+$num2))# 需要赋值给一个变量
num3=$(($num1+$num2))
echo $num3num3=$(($num1*$num2))
echo $num3num3=$(($num1-$num2))
echo $num3num3=$(($num1/$num2))
echo $num3

 

一些操作符在$(()) 不支持, 在比较运算的时候最好使用expr

num1=5
num2=5
num3=$(($num1=$num2))

expr $num1 = $num2

练习例子  

提示用户输入一个正整数num,然后计算1+2+3+...+num的值;必须对num是否为正整数做判断,不符合应当运行再次输入

判断是否是一个正整数

思路:

  • expr只能对整数进行计算,直接用expr 和一个整数计算获取 $? 的值来判断是否为整数
  • 在使用 expr $num1 \> 0 判断是否大于0
# 不是整数使用 expr 进行数学运算会出错
num1=56.58
expr $num1 + 1

  

sum.sh

#!/bin/bash
#
while true
doread -p "please input a positive number: " num# 判断数是否是整数expr $num + 1 &> /dev/nullif [ $? -eq 0 ];then# 判断这个整数是否大于0,大于0返回1if [ `expr $num \> 0` -eq 1 ];then#echo "yes,positive number"# $sum没有赋值,默认为0for((i=1;i<=$num;i++))dosum=`expr $sum + $i`doneecho "1+2+3+...+$num = $sum"# 执行计算需要退出exitfifiecho "error,input enlegal"continue
done

执行脚本

sh sum.sh

shell 运算之 bc

bc 介绍:

  • bc 是bash内建的运算器,支持浮点数运算
  • 内建变量scale可以设置,默认为 0

bc 操作符对照表

交互测试

脚本中使用管道符进行计算

echo "23+33" | bc

保留精度 scale=4; 用分号隔开

echo "scale=4;23.3/3.5" | bc

bc示例脚本

bc.sh

#!/bin/bash
#read -p "num1: " num1
read -p "num2: " num2#echo "scale=4;$num1/$num2" | bcnum3=`echo "scale=4;$num1/$num2" | bc`echo "$num1 / $num2 = $num3"

执行

sh bc.sh

  

转载于:https://www.cnblogs.com/crazymagic/p/11071871.html

shell 数学运算相关推荐

  1. shell脚本基础(环境变量、重定向、数学运算、退出脚本)

    一.使用环境变量 1.环境变量 所谓环境变量,就是用来存储有关shell会话和工作环境信息的特性,这项特性允许你在内存中存储数据,以便程序或shell中运行的脚本能够轻松访问到它们.这也是存储持久数据 ...

  2. linux shell数学计算器,技术|使用 GNU bc 在 Linux Shell 中进行数学运算

    在 shell 中使用 bc 更好地做算数,它是一种用于高级计算的数学语言. 大多数 POSIX 系统带有 GNU bc,这是一种任意精度的数字处理语言.它的语法类似于 C,但是它也支持交互式执行语句 ...

  3. linux+shell+整数计算器,Shell(())实现对整数进行数学运算

    双小括号 (( )) 是 Bash Shell 中专门用来进行整数运算的命令,它的效率很高,写法灵活,是企业运维中常用的运算命令. 注意:(( )) 只能进行整数运算,不能对小数(浮点数)或者字符串进 ...

  4. Linux shell 变量 数学 运算

    出处:http://qujunorz.blog.51cto.com/6378776/1382085 Abstract : 1)  Linux shell 中使用 let , [ ] ,(( )) 三种 ...

  5. Shell脚本攻略03-使用shell进行数学运算

    概述 无论哪种编程语言都少不了算术操作,在这则攻略中,我们将会研究在shell中进行算术运算的各种方法. 理论知识 在Bash shell环境中,可以利用let. (( ))和[]执行基本的算术操作. ...

  6. linux中bc用法英文,使用GNU bc在Linux Shell中进行数学运算

    在 shell 中使用 bc 更好地做算数,它是一种用于高级计算的数学语言. 大多数 POSIX 系统带有 GNU bc,这是一种任意精度的数字处理语言.它的语法类似于 C,但是它也支持交互式执行语句 ...

  7. Linux求平方脚本,Linux Shell脚本系列教程(五):数学运算

    这篇文章主要介绍了Linux Shell脚本系列教程(五):数学运算,本文讲解了使用let.(())和[]进行算术运算.使用expr进行算术运算.使用bc进行算术运算三种方法,需要的朋友可以参考下 在 ...

  8. shell脚本实战-使用shell进行数学运算

    前言 上篇文章我们探讨了shell脚本的基础和变量, 在学习变量的时候我们探讨了环境变量和用户自定义变量,以及一些特殊的用法.无论使用哪种语言都少不了进行算术操作,今天我们来看看如何使用shell脚本 ...

  9. shell脚本编程笔记(二)—— 执行数学运算

    数学运算在编程中也很重要,shell对它的支持并不算好,本文整理一下shell进行数学运算的途径,各种方法的缺点. 一. expr命令 shell最开始处理数学表达式的命令,可以在命令行做算术运算,参 ...

最新文章

  1. 大数据实验室(大数据基础培训)——基础概念
  2. php简单异常,PHP实现的简单异常处理类示例
  3. 三个案例,解读静态代码块和构造代码块
  4. python 语言教程(3)变量之列表(List)
  5. zoj-What day is that day?
  6. 计算机专业词典_好书优选:实用英汉汉英计算机词典
  7. 争做RTC领域标杆——与华为云副总裁薛浩聊聊我们的视频时代
  8. 程序员自我修养的4个阶段
  9. Qt之程序发布以及打包成exe安装包
  10. 浅谈Object Pascal的指针[引用 Nicrosoft]
  11. Python数据分析学习笔记04:Pandas基础
  12. iOS多任务:suspend VS terminate
  13. 前端小技巧之ajax后遍历生成相同结构不同数据的dom
  14. 医疗数据分析——过高费用的异常检测
  15. 【mysql日常】Centos安装Mysql客户端
  16. python网格搜索核函数_python机器学习——超参数网格搜索
  17. c java long_C语言中输出long long型数据怎么输出
  18. 驱动读写应用程序内存
  19. 小甲鱼Python3学习笔记之第十讲(仅记录学习)
  20. python ---图片转为卡通图

热门文章

  1. WCF HelpPage 和自动根据头返回JSON XML
  2. 创造包容的环境和上升空间
  3. Java Web学习(五)session、cookie、token
  4. (错误记录)git push 报错 403
  5. python基础--字符串的内置函数
  6. 【Flask】sqlalchemy 排序
  7. 【Centos】修改系统字符集
  8. request 获取各种路径
  9. C#语言基础— 输入与输出
  10. java的System.getProperty()方法能够获取的值