LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 919|回复: 4

给大家一个用SHELL 脚本写的计算器!!不过不够完整,希望高家给予补充!!

[复制链接]
发表于 2007-1-1 13:32:46 | 显示全部楼层 |阅读模式
#!/bin/bash
echo "WELCOME TO THE CALCULATOR PROGRAM"
echo "lease input two digits:"
read number1 number2
while true
do
echo "Select one of the opertors"
echo "a)=+      s)=-    m)=*    d)=/    q)=quit"
read op
case $op in
a)
let "result=$number1+$number2"
echo $result
;;
s)
result=$(($number1-$number2))
echo "$number1-$number2=$result"
;;
m)
result=$(($number1 * $number2))
echo "$number1 * $number2=$result"
;;
d)
let "result=$number1/$number2"
echo "$number1/$number2=$result"
;;
q)
echo "GoodBye"
exit 0
;;
*)
echo "Wrong string Input again"
;;
esac
done

此计算器只能用来计算“加减乘除”,作“除”运算时还有错误,求出来的是整数!!!
希望大家添加和斧正!!!
发表于 2007-1-1 13:43:35 | 显示全部楼层
shell 中的变量是不区分数据类型的,并且对所有的数都是看做字符串的
回复 支持 反对

使用道具 举报

发表于 2007-1-3 17:34:23 | 显示全部楼层
我用awk做计算 比如

  1. echo|awk '{print 3+2-2.2*5*sin(2)}'
复制代码

如果要用它来写个计算器程序的话文件内容可以是:

  1. #!/bin/bash
  2. echo|awk '{print '"$1"'}'
复制代码
回复 支持 反对

使用道具 举报

发表于 2007-1-3 17:38:16 | 显示全部楼层
zsh有个可动态载入的模块,zcacl。
回复 支持 反对

使用道具 举报

发表于 2007-1-3 23:20:58 | 显示全部楼层
Post by lastart
我用awk做计算 比如

  1. echo|awk '{print 3+2-2.2*5*sin(2)}'
复制代码

如果要用它来写个计算器程序的话文件内容可以是:

  1. #!/bin/bash
  2. echo|awk '{print '"$1"'}'
复制代码


呵呵,很不错!
用C++来处理这种表达式要用到堆栈,队列,分析逆波兰式...
awk一句话就搞定了,看来俺该好好学学它。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表