shell 简单计算器

回复 收藏
一个简单计算器,实现sh calc.sh 5.2 * 5
计算出结果 , 支持加减乘除
  1. #!/bin/bash
  2. . /etc/init.d/functions
  3. if [ 3 -ne "$#" ]
  4. then
  5.   echo "参数个数不为3"
  6.   exit 1;
  7. fi
  8. num1=`echo $1|sed 's/[0-9]\.*[0-9]//g'` ;
  9. if [ -n "$num1" ]
  10. then
  11.   echo "$1 不是数字" ;
  12.   exit 1
  13. fi
  14. num1=`echo $3|sed 's/[0-9]\.*[0-9]//g'` ;
  15. if [ -n "$num3" ]
  16. then
  17.   echo "$3 不是数字" ;
  18.   exit 1
  19. fi
  20. # 当输入*号的时候,获取星号的参数,是文件名,这里替换掉使用./calc.sh运行命令  前面的 ./
  21. fileName=`echo $0|sed "s/\.\///g"` ;
  22. case $2 in
  23. +)
  24. echo "scale=2;$1+$3" | bc
  25.   ;;
  26. -)
  27.   echo "scale=2;$1-$3" | bc
  28.   ;;
  29.   \*)
  30.   echo "scale=2;$1*$3" | bc
  31.   ;;
  32.   $fileName)
  33.    echo "scale=2;$1*$3" | bc
  34.    ;;
  35.   /)
  36.    echo "scale=2;$1/$3" | bc
  37.    ;;
  38.    *)
  39.    echo  $"$2 不是运算符"
  40. esac






2016-08-22 16:58 举报
已邀请:
0

chenlei82486708

赞同来自:

num1=`echo $3|sed 's/[0-9]\.*[0-9]//g'` ;

if [ -n "$num3" ]

then

  echo "$3 不是数字" ;

  exit 1

fi

这个应该改成num3=`echo $3|sed 's/[0-9]\.*[0-9]//g'` ;吧  不然无法判断后面的数字是否不是数字

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: