使用shell写简单的计算机

这是用shell写的计算机,支持加、减、乘、除、取模,并提供了用户输入内容检测,分享给大家。

#!/bin/bash    
#这是一个计算器!    
read -p "请输入第一个数字:" -t 30 num1    
read -p "请输入第二个数字:" -t 30 num2    
read -p "请输入运算符号(支持 + - * / %):" -t 30 op    
if [ -n "$num1" -a -n "$num2" -a -n "$op" ]    
	then    
		n1=$(echo $num1 | sed 's/[0-9]//g')    
		n2=$(echo $num2 | sed 's/[0-9]//g')    
		if [ -z "$n1" -a -z "$n2" ]    
			then    
				case $op in     
					"+")    
						R=$(($num1 + $num2))    
					;;    
					"-")    
						R=$(($num1 - $num2))    
					;;    
					"*")    
						R=$(($num1 * $num2))    
					;;    
					"/")    
						R=$(($num1 / $num2))    
					;;    
					"%")    
						R=$(($num1 % $num2))    
					;;    
					*)    
						echo "请输入正确的运算符!"    
						exit 10    
					;;    
				esac    
		else    
			echo "请输入正确的数字!"    
			exit 11    
		fi    
else    
		echo "请输入正确的内容!"    
		exit 12    
fi    
echo "$num1$op$num2=$R"

原文地址:http://blog.51cto.com/sevenot/2058686

时间: 2024-10-08 07:12:31

使用shell写简单的计算机的相关文章

用shell写一个简单的告警系统

用shell写一个简单的告警系统 创建目录结构 mkdir -p /usr/local/sbin/mon/{bin,conf,shares,mail,log} mon //主目录 bin //主程序目录 shares //子程序目录 mail //发邮件目录 log //日志目录 程序主入口文件/mon/bin/main.sh #!/bin/bash export send=1 export addr=`/usr/sbin/ifconfig | grep -A1 'ens33'|awk '/in

模拟HTTP请求的返回&shell写cgi

测试中偶尔会有这样的需求:1.需要访问外网的cgi或链接地址,但访问不通2.需要构造cgi特定的返回,但正常情况下难以构造为了获得想要的结果,此时可以模拟http请求的返回满足测试需要 æ

linux学习 建立静态库,动态库,写简单的makefile

建立静态库 建立四个文件 bin(可执行文件),lib(库),include(头文件),src(放源文件) 这里的起的库明为add 在src文件中执行 1)gcc -c add.c //编译add.c源文件生成add.o目标文件 2)ar crsv ../lib/ libadd.a add.o //对目标文件*.o进行归档,生成lib*.a, 把这个生成文件放在lib里 3)gcc -o main main.c -L(大些的爱偶,放库的路径)../lib   –l(小写的爱偶,库名为add) a

对shell的简单认识

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

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 #对传入的参数进

使用shell脚本简单模拟对特定文件同时读写操作

使用shell脚本简单模拟对特定文件同时读写操作文件内容的格式:field1    ,       field2    , field3    ,       field4以,为分隔符,但是存在空格. 脚本用法如下: ./check_write_read.sh 10 输出结果: Thu Apr 27 19:59:44 CST 2017:Read operation finished 670 Thu Apr 27 19:59:44 CST 2017:Write operation finished

hdu 1283 最简单的计算机

水题. .. import java.util.Scanner; public class Main { static int m1, m2; static int r1, r2, r3; public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { m1 = m2 = r1 = r2 = r3 = 0; m1 = sc.nextInt(); m2 = sc

Java用正则表达式写简单账号密码注册判断

Java写简单账号密码注册判断 菜鸟刚学的表达式 练手代码. 1 /*在注册时通常要验证用户名和密码是否合法,运用学习过的知识完成如下操作: 2 3 用户名长度大于等于6位,必须包含数字和英文字母 4 5 密码长度大于等于8位,必须包含特殊符合_或者$,英文字母以及数字 6 7 以上两个条件同时成立注册才能成功. 8 9 10 11 * */ 12 13 import java.util.Scanner; 14 15 import java.util.regex.Matcher; 16 17 i

邮箱扒头像来告诉你怎么写简单的脚本扒图

用邮箱扒头像来告诉你怎么写简单的脚本扒图 手上有几十万邮箱,本来用户系统没有做头像的东西,现在想根据这些邮箱能拿一部分用户的头像,可以直接使用 gravatar的服务,不过这玩意儿不时会被墙,还是拉回来靠谱,第2个途径是qq邮箱,通过分析数据发现,这几十万 用户里面居然有一半以上是qq邮箱,so 要想办法通过不用oauth的方式拿到. 思路与技术选择 作为一个pythoner,有很多爬虫框架可以选择,例如scrapy pyspider 没错有中文 有ui 有时间调度 爬虫框架会给你做很多事情,基