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

#!/bin/bash
if [ $# -ne 3 ]
thenecho "参数个数应该为3,例如:$0 1 + 2"echo "当使用乘法时,需要加上脱义符号,例如:$0 1 \* 2"exit 1;
fi
num1=`echo $1|sed 's/[0-9.]//g'`
if [ -n "$num1" ]
thenecho "$1不是数字"exit 1
fi
num3=`echo $3|sed 's/[0-9.]//g'`
if [ -n "$num3" ]
thenecho "$3不是数字"exit 1
fi
case $2 in+)echo "scale=2;$1+$3" | bc;;-)echo "scale=2;$1-$3" | bc;;\*)echo "scale=2;$1*$3" | bc;;/)echo "scale=2;$1/$3" | bc;;*)echo "$2 不是运算符" ;;
esac

解析:

$# 参数的数量

$0 当前执行的进程名

num1 -ne  num2 不等于 [ 3 -ne $mynum ]

-n string 如果 string长度非零,则为真 [ -n "$myvar" ]

sed   '【n1,n2】【[0-9a-zA-Z]】s/源字符串/目标字符串/g' filename
         这里n1,n2是指区间n1到n2行,“s”就是替换的命令,“g”为本行中全局替换,如果不加‘g’,则只替换该行中出现的第一   个。除了可以使用“/”作为分隔符外,还可以使用其他特殊字符如“#”或者“@”。

bc命令是一种支持任意精度的交互执行的计算器语言。bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以很方便的进行浮点运算。参数scale=2是将bc输出结果的小数位设置为2位

使用case,如果$2为+,输出echo "scale=2;$1+$3" | bc

依次论推

如果$2不是加减乘除任一情况,则输出echo "$2 不是运算符"

转载于:https://blog.51cto.com/12129628/2072173

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

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

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

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

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

  3. java简易计算器考察什么_练习:用java写一个简易计算器

    初学java中的选择,判断,循环和方法的概念,写一个简易的两位数计算器 思路推荐: 写4个方法:加减乘除 利用循环+switch进行用户交互 传递需要操作的两个数 输出结果 package com.j ...

  4. Android写一个简易计算器(可以实现连续计算)

    发一个库存程序,好像是几个礼拜之前写的吧,是一个用安卓实现的简易的计算器,写这个小程序之前,看了很多人写的计算器,觉得使用一个 EditText,并将它设置为不可编写,是比较好的解决方案. 设计思路主 ...

  5. js写一个简易计算器

    <!DOCTYPE html> <html><head><title> 简易计算器</title><script type=" ...

  6. android 加减乘除计算器,【03-21求助】写一个简易计算器的安卓app,一按加减乘除就退出...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 package com.example.ag; import android.app.Activity; import android.os.Bundle ...

  7. 【Linux操作系统】--攥写一个简易的shell工具

    目录 做一个简易的shell 第一步:打印提示符,在同一行打印出提示符 第二步:获取标准输入,获取命令字符串 第三步:将字符串分割,解析字符串 第四步:替换进程,执行第三方命令 3.5.执行第三方命令 ...

  8. JSP 和 JavaBean 来实现一个简易计算器

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.代码 1.calculater.jsp 2.Calculater.java 总结 前言 使用 JSP 和 Java ...

  9. 用Java写一个年薪计算器,助你简单完成大量税前税后总薪计算量

    每个有规模一点的公司都会有会计部门这是毋庸置疑的,但是会计的工作真的如大部分人想的那么简单,只是在每个月的最后几天才忙得不可开交吗 ? 答案当然不是,不然这个岗位早就人满为患了. 目前就我了解到的会计 ...

最新文章

  1. 图灵奖得主LeCun和7位华人博士当选美国科学院2021院士!!
  2. 达拉草201771010105《面向对象程序设计(java)》第十六周学习总结
  3. 神策 2021 数据驱动大会,科特勒、桑文锋等发出营销未来之强音
  4. linux搜索指定文件夹里文件是否存在,Linux文件操作之文件查询与搜索命令详解...
  5. (一)phoneGap之环境搭建教程及其example分析
  6. Linux机器学习软件配置
  7. 本地离线语音识别芯片厂家盘点,哪一家实力更强
  8. [转]加载纹理与使用glGenTextures时应注意的一点(解决吃内存)
  9. 利用Javacsv实现Java读写csv文件
  10. 字节跳动斥巨资开发出《Python知识手册》
  11. Keil5窗口的背景保护色设置
  12. 主机游戏神作和排行榜
  13. Python - 面向对象编程 - 公共属性、保护属性、私有属性
  14. 技术牛人---章文嵩博士---阿里副总裁章文嵩:淘宝基础设施构建实践
  15. pip安装包以及更新报错Could not fetch URL :There was a problem confirming the ssl certificate
  16. 社区人物志|李昊鹏:日拱一卒,功不唐捐
  17. 在线作图丨差异分析——ANOSIM相似性分析
  18. 华为android内存扩大,安卓手机运行内存越来越不够用,华为却放出了这一招来解决!...
  19. SAP第四代增强 BTE
  20. 通信2M接口基本知识点简介

热门文章

  1. 计算机bootmgr丢失,电脑开机提示bootmgr is missing怎么办 几个步骤轻松修复电脑系统...
  2. udp网络程序-端口问题
  3. 线性模型之Logistic和Softmax回归
  4. 日语键盘的Macbook如何输入英文反斜线('\')
  5. 移动端H5活动页优化方案
  6. 技术和业务,到底哪个重要?
  7. 分布式操作系统 - 2.分布式体系结构
  8. windows下配置文件共享,针对不同用户要不同权限
  9. Spring的StopWatch
  10. 全面理解Java内存模型(JMM)及volatile关键字