用shell实现简易计算器
原生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实现简易计算器相关推荐
- shell制作简易计算器和可能出现的“too many argument”问题的解决
今天用shell制作了一个简易计算器如下: 在使用之后,进行"+""-"运算的时候计算器正常使用,而开始进行"\*"运算时就会出现如下报错: ...
- linux shell 计算器 除0,用shell写一个简易计算器,可以实现加、减、乘、除运算,假如脚本名字为1.sh,执行示例:./1....
用shell写一个简易计算器,可以实现加.减.乘.除运算,假如脚本名字为1.sh,执行示例:./1.sh 1 + 2#!/bin/bash if [ $# -ne 3 ] then echo &quo ...
- linux脚本计算器加减乘除,用shell写一个简易计算器,可以实现加、减、乘、除运算,假如脚本名字为1.sh,执行示例:./1....
用shell写一个简易计算器,可以实现加.减.乘.除运算,假如脚本名字为1.sh,执行示例:./1.sh 1 + 2#!/bin/bash if [ $# -ne 3 ] then echo &quo ...
- 用shell写一个简易计算器,可以实现加、减、乘、除运算,假如脚本名字为1.sh,执行示例:./1....
用shell写一个简易计算器,可以实现加.减.乘.除运算,假如脚本名字为1.sh,执行示例:./1.sh 1 + 2 #!/bin/bash if [ $# -ne 3 ] thenecho &quo ...
- java swt 计算器_JAVA开发简易计算器界面-SWT
大家好,我是成都[LD],博客四年前就申请了,一直没打理,最近正好有时间,遂萌生了写技术博客的念头.我不得不感慨现在新技术更新很快,一不小心,就感觉自身就Out了.记得一年前,当时我也是在51CTO上 ...
- 怎么用python自制计算公式_手把手教你用python制作简易计算器,能够记录你使用的情况...
话不多说,首先先看效果图,它能够记录你在使用过程中的历史,方便你查看是否有错: 接下来就仔细分析一下是如何制作的: 简易计算器 第一步:导入资源库 在过程中使用到了tkinter这个资源库,win+R ...
- python表达式计算器_Python正则表达式实现简易计算器功能示例
本文实例讲述了Python正则表达式实现简易计算器功能.分享给大家供大家参考,具体如下: 需求:使用正则表达式完成一个简易计算器. 功能:能够计算简单的表达式. 如:1*2*((1+2)/(2+3)+ ...
- PyQt5 简易计算器
剩下计算函数(self.calculator)未实现,有兴趣的朋友可以实现它 [知识点] 1.利用循环添加按钮部件,及给每个按钮设置信号/槽 2.给按钮设置固定大小:button.setFixedSi ...
- JAVA(利用jsp+javabean+servlet)实现简易计算器
代码解释基本都在代码中给出 1 <%@ page language="java" contentType="text/html; charset=UTF-8&quo ...
最新文章
- RIA Service 的 SOAP EndPoint
- C语言内存管理-字符数组与字符指针
- IoC-spring 的灵魂(带你轻松理解IOC思想及bean对象的生成过程)
- Java StringBuilder subSequence()方法与示例
- 排序算法对比、总结(Python代码)
- IAR常用快捷键及使用小技巧
- 30岁就退休,你也可以做到
- Xcode pch文件配置及object c 单例创建
- C++11强类型枚举——枚举类
- 农村三资管理平台app_中科农村三资管理信息系统下载
- nexus5刷机双清 解决手机无限重启
- Android中运行免安装app,适用于免安装应用的 CTS
- 第三章 软件需求分析
- 阿里短信平台初步使用(无账户可以用支付宝登录)
- cherry-pick和merge使用的场景
- 【博学谷学习记录】超强总结,用心分享|狂野架构师之比较常用的技术栈整合
- 阿里云搭建个人博客(workpress)
- 人工智能python营公众号_Python人工智能技术
- linux广播命令,linux 向所有登录用户发送广播 wall命令
- qt plugin metadata file does not exist解决方案
热门文章
- 通达信众赢全部指标(源码副图)
- BAT-使用BAT方法结束进程(删除进程)
- python能做什么项目好-你用 Python 做过什么有趣的数据挖掘项目?
- SSM+在线学习平台 毕业设计-附源码211707
- web前端期末大作业❤️酷炫响应式汽车租赁网页设计❤️(HTML+CSS+JavaScript)
- 如何管理银行多网点监控?用这方法就够了!
- 高通公司宣布将骁龙处理器改名为骁龙移动平台
- 【安全知识分享】全员安全法律法规专项培训143页.pptx(附下载)
- Visual Studio 2019下载、安装、使用
- window 10 删除带有管理员权限的Oracle文件夹