1.read读取方式: [root@www scripts]# vim read_1.sh #!/bin/bash # Filename: read_1.sh # Describe: Integer arithmetic # Author: Lijun # Date: 2015-08-24 # Version: 1.0.1 read -p "Please input two nums: " a b if [ -z $a ] || [ -z $b ] then echo "Please input two nums again." exit 1 fi expr $a + 1 > /dev/null 2>&1 RETVAL1=$? expr $b + 1 > /dev/null 2>&1 RETVAL2=$? if [ $RETVAL1 -ne 0 ] || [ $RETVAL2 -ne 0 ] then echo "Please input two nums(must be integer)." exit 2 else echo "a+b=$(( $a + $b ))" echo "a-b=$(( $a - $b ))" echo "a*b=$(( $a * $b ))" echo "a/b=$(( $a / $b ))" echo "a%b=$(( $a % $b ))" exit 0 fi
2.脚本传参的方式:
[root@www scripts]# vim read_2.sh #!/bin/bash # Filename: read_2.sh # Describe: Integer arithmetic # Author: Lijun # Date: 2015-08-24 # Version: 1.0.2 a=$1 b=$2 #判断参数个数 if [ $# -ne 2 ] then echo "Usage: sh `basename $0` {NUM1 NUM2}" exit 1 fi #判断a,b是不是整数 expr $a + 1 > /dev/null 2>&1 RETVAL1=$? expr $b + 1 > /dev/null 2>&1 RETVAL2=$? if [ $RETVAL1 -ne 0 ] || [ $RETVAL2 -ne 0 ] then echo "Please input two integers(must be integer)." exit 2 else echo "a+b=$(( $a + $b ))" echo "a-b=$(( $a - $b ))" echo "a*b=$(( $a * $b ))" echo "a/b=$(( $a / $b ))" echo "a%b=$(( $a % $b ))" exit 0 fi
3. [root@www scripts]# vim read_3.sh #!/bin/bash # Filename: read_3.sh # Describe: Integer arithmetic # Author: Lijun # Date: 2015-08-24 # Version: 1.0.3 read -p "Please input two nums: " a b if [ -z $a ] || [ -z $b ] then echo "Please input two nums again." exit 1 fi #整数判断的另一种方法 echo $a |egrep -o "[^0-9]{1,}" > /dev/null || echo $b |egrep -o "[^0-9]{1,}" > /dev/null &&\ echo "Please input two nums(must be integer)."|| { echo "a+b=$(( $a + $b ))" echo "a-b=$(( $a - $b ))" echo "a*b=$(( $a * $b ))" echo "a/b=$(( $a / $b ))" echo "a%b=$(( $a % $b ))" }
4. [root@oldjun-study scripts]# vim read_4.sh #!/bin/bash # Filename: read_4.sh # Describe: Integer arithmetic # Author: Lijun # Date: 2015-08-26 # Version: 1.0.4 read -p "pls input two nums: " a b #通过字符串的长度,来判断参数的个数(变量为空或没声明,值为0,即参数个数为0) if [ ${#a} -eq 0 ] || [ ${#b} -eq 0 ] then echo "a or b is null,pls input two nums again!" exit 1 fi expr $a + 1 > /dev/null 2>&1 RETVAL1=$? expr $b + 1 > /dev/null 2>&1 RETVAL2=$? if [ $RETVAL1 -ne 0 ] || [ $RETVAL2 -ne 0 ] then echo "Please input two nums(must be integer)." exit 2 else echo "a+b=$(( $a + $b ))" echo "a-b=$(( $a - $b ))" echo "a*b=$(( $a * $b ))" echo "a/b=$(( $a / $b ))" echo "a%b=$(( $a % $b ))" exit 0 fi
转载于:https://blog.51cto.com/l19891223j/1687989