Shell 实现简单计算器功能,脚本如下:

[root@nfs scripts]# cat jisuan.sh

#!/bin/bash

print_usage(){

printf $"USAGE:$0 NUM1 {+|-|*|/} NUM2\n"

exit 1

}

#判断传入的参数是不是3个

if [ $# -ne 3 ]

then

print_usage

fi

firstnum=$1

secondnum=$3

op=$2

#对传入的参数进行判断看是不是合理

if [ -n "`echo $firstnum|sed 's/[0-9]//g'`" ];then

print_usage

fi

if [ "$op" != "+" ]&&[ "$op" != "-" ]&&[ "$op" != "*" ]&&[ "$op" != "/" ];then

print_usage

fi

if [ -n "`echo $secondnum|sed 's/[0-9]//g'`" ];then

print_usage

fi

echo "${firstnum}${op}${secondnum}=$((${firstnum}${op}${secondnum}))"

调试:

[root@nfs scripts]# sh -x jisuan.sh 6 + 4

+ '[' 3 -ne 3 ']'

+ firstnum=6

+ secondnum=4

+ op=+

++ sed 's/[0-9]//g'

++ echo 6

+ '[' -n '' ']'

+ '[' + '!=' + ']'

++ sed 's/[0-9]//g'

++ echo 4

+ '[' -n '' ']'

+ echo 6+4=10

6+4=10

[root@nfs scripts]# sh -x jisuan.sh 5 \* 5

+ '[' 3 -ne 3 ']'

+ firstnum=5

+ secondnum=5

+ op='*'

++ sed 's/[0-9]//g'

++ echo 5

+ '[' -n '' ']'

+ '[' '*' '!=' + ']'

+ '[' '*' '!=' - ']'

+ '[' '*' '!=' '*' ']'

++ sed 's/[0-9]//g'

++ echo 5

+ '[' -n '' ']'

+ echo '5*5=25'

5*5=25

注意:

“-x”表示调试,可以看见执行的步骤

对应 “*” 需要加 “\”转义

用计算机怎么计算sh 3,Shell 实现简单计算器功能相关推荐

  1. 算盘算筹计算机论文,计算工具的认识和算盘-计算器

    <计算工具的认识和算盘-计算器>由会员分享,可在线阅读,更多相关<计算工具的认识和算盘-计算器(39页珍藏版)>请在人人文库网上搜索. 1.数是个神秘的领域,人类最初对数并没有 ...

  2. 计算机5800计算道路标高程序,Casio fx-5800P计算器三个公路基本测量程序编写与应用...

    原标题:Casio fx-5800P计算器三个公路基本测量程序编写与应用 引论:casiofx-5800P计算器测量程序在计算机网络上多有流传,但有的测量主程序算法复杂,编程繁琐:有的程序内容表达错误 ...

  3. 用计算机怎么计算sh 3,舍伍德数Sh计算公式与在线计算器_三贝计算网_23bei.com

    输入舍伍德数Sh.传质系数k'(m/s).特征长度L(m).特性系数DAB(m2/s)等4个变量中任意3个已知变量,点击计算按钮,可快速求出未知变量. 舍伍德数是流体力学中的无量纲数,也被称为质量传递 ...

  4. 年龄计算机在线计算适合你的对象,年龄计算器恋爱对象APP

    年龄计算器恋爱对象APP是一款非常火爆的应用软件,主要就是可以使用这款软件计算年龄,这个软件的玩法非常的简单,在抖音上也非常火爆,受到很多人的喜欢,可以为用户一键查询年龄和生日,操作简单方便,得出结果 ...

  5. 用计算机pol计算方位角,如何通过编程代替计算器内部函数“Pol和Rec”

    如何通过编程代替计算器内部函数"Pol和Rec" 代码如下: Fix 3                       保留3位小数到mm {A}                   ...

  6. c 科学计算机 优先级计算,北邮上机复试 科学计算器 —— 由编译器的不同引发的数十次 WA,最后终于AC——总结...

    北邮的上机复试环境用的是标准c/c++,而我从大一开始就用vc6.0,很痛苦的出现了很多不同情况.今天用DEV c++解决了一些问题,总结一下. 1. gets() 和 scanf() gets() ...

  7. html用js计算显示,html+css+js实现计算器功能

    /* 主体 */ .counter{ width: 396px; height: 486px; background-color: #F2F2F2; border: 1px solid #C2C3C6 ...

  8. 计算机原理 对口单招,对口单招计算机原理计算专题练习-20210622114415.pdf-原创力文档...

    对口单招计算机原理计算专题练习 一.数制转换类 1.十六进制数 1000 转换成十进制数是 ______ . A .4096 B .2048 C .1024 D . 8192 2 .十进制数 25.1 ...

  9. 利用计算思维解决问题人和计算机都能完成,第1课计算机与计算思维.ppt

    第1课计算机与计算思维 计算机学科的方法论有三个过程:抽象.理论和自动化设计及实现 最根本的问题在于:问题如何进行描述?哪些部分能够被自动化?如何进行自动化描述? 建立物理符号系统并对其实施等价变换是 ...

最新文章

  1. python 跳出for循环_python中如何退出for循环
  2. 软件工程个人作业03—找水王
  3. 原来公司需要这样的你
  4. zset中的score_Redis 在项目中合理使用经验总结
  5. (转) 深度模型优化性能 调参
  6. 《机器学习实战》程序清单3-4 创建树的函数代码
  7. Windows开机 桌面一片空白 无法操作
  8. 技术人不会学习,35 岁必然要焦虑!
  9. 矩阵对应元素相乘_图网络(GNN)前传 : 图与矩阵的兄弟情结
  10. 最新python大数据毕业设计选题推荐(三)
  11. 超大流量分布式系统架构解决方案
  12. 4r照片尺寸是多大_4R照片是什么尺寸,跟普通照片有什么区别? – 手机爱问
  13. 如何自定义设置macOS的开机启动项
  14. JVM运行原理及优化
  15. note4-WEB源码拓展
  16. 首行缩进,文字之间的间距
  17. luoguP1357 花园
  18. 移动apn接入点哪个快_电信和联通以及移动物联卡哪个较好
  19. 基于FME的地形图图面压盖检查工具的设计与制作
  20. 卡券、直充订单列表接口(post 表单提交)

热门文章

  1. 《Qt5+SQLite数据库》
  2. java将json转csv
  3. Cinchoo ETL——快速入门:将JSON转换为CSV文件
  4. 女孩子应该体谅男孩子的十个地方
  5. matlab input怎么用,MATLAB如何使用input函数接受用户的键盘输入
  6. Jmeter-测试脚本学习(登录脚本)
  7. Linux之父(李纳斯·托沃兹/Linus Torvalds)
  8. 互联网快讯:齐广璞空中技巧夺金;极米投影产品成用户首选;星巴克美式、拿铁等产品涨价
  9. 这8大信用卡秘密!银行绝不会说
  10. 基于LIC算法的二维矢量场可视化