zoukankan      html  css  js  c++  java
  • Shell脚本数字比较与四则运算

    一、普通方式

    分别以脚本传参和read读入的方式写出两个脚本,并且需要对传入的参数进行是否为数字进行判断。

    1、脚本传参方式

    #!/bin/sh
    a=$1
    b=$2
    # 判断输入是否为空
    if [ -z "$a" ] || [ -z "$b" ] 
     then
       echo "must input"
    else
       #判断输入是否为整数
       expr $a + 0 > /dev/null
       expr $b + 0 > /dev/null
       if [ $? -eq 0 ]
         then
            echo "input number"
       else
         echo "must number" 
       fi
      # 判断两个整数大小
      if [ $a -lt $b ]
        then
          echo "$a less then $b"
      elif [ $a -gt $b ]
        then
          echo "$a less then $b"
      else
          echo "$a equals to $b"
      fi    
    fi

    2、read 读入

    #!/bin/sh
    read -p "please input two number" a b
    # 判断输入是否为空
    if [ -z "$a" ] || [ -z "$b" ] 
     then
       echo "must input"
    else
       #判断输入是否为整数
       expr $a + 0 > /dev/null
       expr $b + 0 > /dev/null
       if [ $? -eq 0 ]
         then
            echo "input number"
       else
         echo "must number" 
       fi
      # 判断两个整数大小
      if [ $a -lt $b ]
        then
          echo "$a less then $b"
      elif [ $a -gt $b ]
        then
          echo "$a less then $b"
      else
          echo "$a equals to $b"
      fi    
    fi

    二、优化方式

    如果输入的个数不是两个,如何进行判断?

    read -p "please input values: " a b
    expr + $a &> /dev/null
    A=$?
    expr + $b &> /dev/null
    B=$?
    if [ ! -n ""$a ]||[ ! -n "$b" ]
       then
         echo "please input two values"
    elif [ "$A" -ne 0 ]||[ "$B" -ne 0 ]
       then
         echo "please input two numbers"
    else
       echo "$a-$b=$(($a-$b))"
       echo "$a+$b=$(($a-$b))"
       echo "$a*$b=$(($a*$b))"
    作者:iveBoy
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    三元表达式、列表推导式、生成器表达式、递归、匿名函数
    nonlocal关键字、装饰器
    函数嵌套、作用域、闭包
    实参和形参
    函数基础
    文件操作
    字符编码
    推荐一个纯JavaScript编写的图表库——Highcharts
    推荐web 前端代码的编辑分享平台——RunJS
    了解腾讯
  • 原文地址:https://www.cnblogs.com/shenjianping/p/14320229.html
Copyright © 2011-2022 走看看