原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如:awk 和expr,expr最常用。

方法一:使用的是“expr”,expr是一款表达式计算工具,使用它能完成表达式的求值操作。对于整数的加减乘除以及取余都可以进行正常的运算,但是执行效率较低,输入一个运算需要从上一级到下一级一级一级进行判断,过于冗余。脚本如下:

#!/bin/bash
read -p "请输入第一个整数:" num1
read -p "请选择你的运算符号加法(+),减法(-),乘法(*),除法(/),取余(%):" fh
read -p "请输入第二个整数:" num2if [ $fh = + ]
then
echo "结果为:`expr $num1 + $num2`"elif [ $fh = - ]
then
echo "结果为:`expr $num1 - $num2`"elif [ $fh = * ]
then
echo "结果为:$(expr $num1 \* $num2)"elif [ $fh = / ] then
echo "结果为:$(expr $num1 / $num2)"elif [ $fh = % ]
then
echo "结果为:$(expr $num1 % $num2)"else
echo "输入错误"
fi

方法二:可以使用awk进行字符串的截取,实现整数加减乘除取余的功能第二种方法,但此处expr无法实现乘的功能。脚本如下:

#!/bin/bash
read -p "请输入你想要计算的式子:" nums
i=`echo $nums |awk -F"+|-|*|/|%" '{print$1}'`
j=`echo $nums |awk -F"+|-|*|/|%" '{print$2}'`
x=`echo $nums |awk -F"$i" '{print$2}' |awk -F"$j" '{print$1}'`
#expr $i $x $j  备注:使用expr存在“×”的转义问题尚未解决,无法实现乘的计算。
echo "$i$x$j=$[i${x}j]"

执行结果如下:

方法三:受方法二的启发,进一步简化,实现整数加减乘除取余的功能第三种方法。注意事项:输入算式时,参数之间需要空格。脚本如下:

#!/bin/bash
read -p "请输入一个算式:" a s b
echo "$a$s$b=$[a${s}b]"

执行结果如下:

用shell实现简易计算器相关推荐

  1. shell制作简易计算器和可能出现的“too many argument”问题的解决

    今天用shell制作了一个简易计算器如下: 在使用之后,进行"+""-"运算的时候计算器正常使用,而开始进行"\*"运算时就会出现如下报错: ...

  2. linux shell 计算器 除0,用shell写一个简易计算器,可以实现加、减、乘、除运算,假如脚本名字为1.sh,执行示例:./1....

    用shell写一个简易计算器,可以实现加.减.乘.除运算,假如脚本名字为1.sh,执行示例:./1.sh 1 + 2#!/bin/bash if [ $# -ne 3 ] then echo &quo ...

  3. linux脚本计算器加减乘除,用shell写一个简易计算器,可以实现加、减、乘、除运算,假如脚本名字为1.sh,执行示例:./1....

    用shell写一个简易计算器,可以实现加.减.乘.除运算,假如脚本名字为1.sh,执行示例:./1.sh 1 + 2#!/bin/bash if [ $# -ne 3 ] then echo &quo ...

  4. 用shell写一个简易计算器,可以实现加、减、乘、除运算,假如脚本名字为1.sh,执行示例:./1....

    用shell写一个简易计算器,可以实现加.减.乘.除运算,假如脚本名字为1.sh,执行示例:./1.sh 1 + 2 #!/bin/bash if [ $# -ne 3 ] thenecho &quo ...

  5. java swt 计算器_JAVA开发简易计算器界面-SWT

    大家好,我是成都[LD],博客四年前就申请了,一直没打理,最近正好有时间,遂萌生了写技术博客的念头.我不得不感慨现在新技术更新很快,一不小心,就感觉自身就Out了.记得一年前,当时我也是在51CTO上 ...

  6. 怎么用python自制计算公式_手把手教你用python制作简易计算器,能够记录你使用的情况...

    话不多说,首先先看效果图,它能够记录你在使用过程中的历史,方便你查看是否有错: 接下来就仔细分析一下是如何制作的: 简易计算器 第一步:导入资源库 在过程中使用到了tkinter这个资源库,win+R ...

  7. python表达式计算器_Python正则表达式实现简易计算器功能示例

    本文实例讲述了Python正则表达式实现简易计算器功能.分享给大家供大家参考,具体如下: 需求:使用正则表达式完成一个简易计算器. 功能:能够计算简单的表达式. 如:1*2*((1+2)/(2+3)+ ...

  8. PyQt5 简易计算器

    剩下计算函数(self.calculator)未实现,有兴趣的朋友可以实现它 [知识点] 1.利用循环添加按钮部件,及给每个按钮设置信号/槽 2.给按钮设置固定大小:button.setFixedSi ...

  9. JAVA(利用jsp+javabean+servlet)实现简易计算器

    代码解释基本都在代码中给出 1 <%@ page language="java" contentType="text/html; charset=UTF-8&quo ...

最新文章

  1. RIA Service 的 SOAP EndPoint
  2. C语言内存管理-字符数组与字符指针
  3. IoC-spring 的灵魂(带你轻松理解IOC思想及bean对象的生成过程)
  4. Java StringBuilder subSequence()方法与示例
  5. 排序算法对比、总结(Python代码)
  6. IAR常用快捷键及使用小技巧
  7. 30岁就退休,你也可以做到
  8. Xcode pch文件配置及object c 单例创建
  9. C++11强类型枚举——枚举类
  10. 农村三资管理平台app_中科农村三资管理信息系统下载
  11. nexus5刷机双清 解决手机无限重启
  12. Android中运行免安装app,适用于免安装应用的 CTS
  13. 第三章 软件需求分析
  14. 阿里短信平台初步使用(无账户可以用支付宝登录)
  15. cherry-pick和merge使用的场景
  16. 【博学谷学习记录】超强总结,用心分享|狂野架构师之比较常用的技术栈整合
  17. 阿里云搭建个人博客(workpress)
  18. 人工智能python营公众号_Python人工智能技术
  19. linux广播命令,linux 向所有登录用户发送广播 wall命令
  20. qt plugin metadata file does not exist解决方案

热门文章

  1. 通达信众赢全部指标(源码副图)
  2. BAT-使用BAT方法结束进程(删除进程)
  3. python能做什么项目好-你用 Python 做过什么有趣的数据挖掘项目?
  4. SSM+在线学习平台 毕业设计-附源码211707
  5. web前端期末大作业❤️酷炫响应式汽车租赁网页设计❤️(HTML+CSS+JavaScript)
  6. 如何管理银行多网点监控?用这方法就够了!
  7. 高通公司宣布将骁龙处理器改名为骁龙移动平台
  8. 【安全知识分享】全员安全法律法规专项培训143页.pptx(附下载)
  9. Visual Studio 2019下载、安装、使用
  10. window 10 删除带有管理员权限的Oracle文件夹