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

if [ $# -ne 3 ]

then

echo "参数个数应该为3,例如:$0 1 + 2"

echo "当使用乘法时,需要加上脱义符号,例如:$0 1 \* 2"

exit 1;

fi

num1=`echo $1|sed 's/[0-9.]//g'`

if [ -n "$num1" ]

then

echo "$1不是数字"

exit 1

fi

num3=`echo $3|sed 's/[0-9.]//g'`

if [ -n "$num3" ]

then

echo "$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 不是运算符"

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

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

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

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

  4. js写一个简易计算器

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

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

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

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

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

  7. 简易计算器 java_用Java做一个简易计算器,要用到哪些知识?

    分析问题关键词:Java.计算器 深夜无聊,暂且一答. 计算器分两个步骤:计算 + 器 篇一 ·「器」 在编程中,我们可以把「器」理解为「GUI(图形界面)」,Java 语言描绘的图形界面有很多种类, ...

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

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

  9. 一道面试题:用shell写一个从1加到100的程序

    [试题描述] 请用shell写一个简短的程序,实现1+2+...+100的功能. [程序] 方法一: #!/bin/bash sum=0 for i in {1..100} dolet sum+=$i ...

最新文章

  1. 并发和在线用户数的思考
  2. 清北学堂模拟赛d3t2 b
  3. 肝!教你用Python抓取某天下楼盘数据
  4. Solaris 10装置jdk1.6及改削成默许JDK
  5. python 编程语言排行榜_2019年6月编程语言排行榜:Python 排名飙升,三年内有望超越Java...
  6. [vue] 怎么给vue定义全局的方法
  7. dubbo学习总结——思维导图
  8. 【新书速递】你想知道的通信“灵魂三问”都在这里……(福利再现)
  9. oracle不同环境数据迁移,生产环境下,oracle不同用户间的数据迁移。第一部分
  10. SDN/NFV在演进中探寻路径
  11. C语言读写txt文件
  12. 有哪些电影一定要趁年轻看? - 风之影的回答 - 知乎
  13. 新浪微博Python登陆
  14. c++ 数组置0_面试中常见的数据结构与算法题整理,想当架构师,数据结构与算法不过关可不行(数组+字符串,共60题)...
  15. 单独的html怎么实现微信分享,html静态页面实现微信分享思路
  16. Android Kotlin - 监听耳机的插入和拔出
  17. 手把手教你使用wordPress+阿里云虚拟主机搭建个人博客
  18. proxmox换源_Proxmox VE 5.4升级到Proxmox VE 6(中国源加速)
  19. 【飞郁2022新课程】23 - CE找偏移表达式
  20. python飞船项目

热门文章

  1. JS重新来过之------------[String对象]
  2. TCP/IP协议讲的明明白白
  3. MFC——在视图窗口加载背景图片
  4. C++中的endl搭配cout和cin用法
  5. python地图 两点距离_没学过还真不会!怎样才能画出准确的地图?
  6. java 高并发第三阶段实战_Java 高并发第三阶段实战---Java并发包深入解析与使用详解...
  7. oracle的pdb,oracle pdb基本管理
  8. 开源项目管理软件 禅道
  9. javascript:history.go()和history.back()的区别
  10. python向上取整 向下取整