• 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
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    第八周课程总结&实验报告(六)
    第七周课程总结&实验报告(五)
    第六周实验总结&学习总结
    关于我
    各种公告

    笔记 综合
    多项式全家桶
    FFT,NTT 笔记
    省选复习
  • 原文地址:https://www.cnblogs.com/shenjianping/p/14320229.html
Copyright © 2020-2023  润新知