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
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    hadoop再次集群搭建(3)-如何选择相应的hadoop版本
    48. Rotate Image
    352. Data Stream as Disjoint Interval
    163. Missing Ranges
    228. Summary Ranges
    147. Insertion Sort List
    324. Wiggle Sort II
    215. Kth Largest Element in an Array
    快速排序
    280. Wiggle Sort
  • 原文地址:https://www.cnblogs.com/shenjianping/p/14320229.html
Copyright © 2011-2022 走看看