Shell 实现简单计算器功能

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

[[email protected] 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}))"

调试:

[[email protected] 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
[[email protected] 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

注意:

  1. “-x”表示调试,可以看见执行的步骤
  2. 对应 “*” 需要加 “\”转义
时间: 2024-12-26 16:19:47

Shell 实现简单计算器功能的相关文章

shell脚本结合函数实现简单计算器功能

#!/bin/bashfunction tool_menu(){    echo "****************************************************"    echo "*                                                  *"    echo "*              calculation  tools                  *"   

java实现简单计算器功能

童鞋们,是不是有使用计算器的时候,还要进入运行,输入calc,太麻烦了,有时候甚至还忘记单词怎么拼写,呵呵程序员自己写代码实现,又简单,又方便啊 以下为代码(想要生成可执行工具可参考:http://www.cnblogs.com/holdon521/p/4483966.html) package com; import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.Font; import java.awt.

s12-day04-work01 简单计算器功能实现

代码: 1 #!/usr/local/env python3 2 ''' 3 Author:@南非波波 4 Blog:http://www.cnblogs.com/songqingbo/ 5 E-mail:[email protected] 6 ''' 7 8 import time,sys 9 import module 10 11 if __name__ == "__main__": 12 while True: 13 count = 0 14 if count < 3: 1

Android-Kotlin简单计算器功能

上一篇博客 Android-Kotlin-配置/入门 配置好了 AndroidStudio Kotlin 的环境: 选择包名,然后右键: 选择Class类型,会有class: 创建CounterClass: package cn.kotlin.kotlin_oop02 /** * 加减乘除计算的calss * var number1:Double 此Double是kotlin的 * var operapor:Char 此Char是kotlin的 */ class CounterClass(var

完成一段简单的Python程序,用于实现一个简单的加减乘除计算器功能

#!/bin/usr/env python#coding=utf-8'''完成一段简单的Python程序,用于实现一个简单的加减乘除计算器功能'''try: a=int(raw_input("please input a number:"))except ValueError: print("第一个运算数字输入非数字") try: b=int(raw_input("please input another number:"))except Val

使用JS完成一个简单的计算器功能

使用JS完成一个简单的计算器功能.实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除. 提示:获取元素的值设置和获取方法为:例:赋值:document.getElementById("id").value = 1: 取值:var = document.getElementById("id").value: 任务 第一步: 创建构建运算函数count(). 第二步: 获取两个输入框中的值和获取选择框的值. 提示:document.getElement

对shell的简单认识

shell是一个命令解释器: shell分为交互式shell和非交互式shell: 交互式shell就是命令行一问一答:非交互式shell是像shell文本那样,一次解析文本, 并未在命令行给我们作出回答. shell又分为登陆式shell和非登录式shell: 主要区分于是否输入用户名和密码,输入用户名.密码登陆就为登陆式shell, 例如我们在图形化界面下打开的终端为非交互式shell: type命令的用法: -t: 加-t参数,type将name通过以下文字显示他的意思 file:表示外部

菜鸟学Android编程——简单计算器《一》

菜鸟瞎搞,高手莫进 本人菜鸟一枚,最近在学Android编程,网上看了一些视频教程,于是想着平时手机上的计算器应该很简单,自己何不尝试着做一个呢? 于是就冒冒失失的开撸了. 简单计算器嘛,功能当然很少,加减乘除就可以. 第一步:设计布局文件 界面如下图: 由于刚开始学Android,对布局文件也不是很了解,边查边找,最后凑合着写好了布局文件. 注意事项:此布局文件用到了GridLayout布局,是在Android4.0以上才出现的(不知道谷歌有没有开发相应的包来适配4.0以下版本). 有关Gri

Ubuntu下Shell的简单实现(C语言)

最近在操作系统的实验课上要求在Linux下实现Shell的简单功能,做了实验感觉挺有收获的,就在这分享一下,欢迎指出问题. 废话不多说,先看main()函数. 1 int main() 2 { 3 char inputBuffer[MAXLINE]; 4 char *argv[MAXLINE/2 - 1]; 5 6 while (1) 7 { 8 printf("COMMAND->"); 9 fgets(inputBuffer,80,stdin); 10 setup(inputB