《跟老男孩学习Linux运维:Shell编程实战》之比较两个整数的大小
说明:使用if条件从句比较两个整数的大小。使用传参方法时,需要对传参个数及传入的参数是否是整数进行判断。
思路
第一,先判断输入的是两个数,对输入个数进行判断;
第二,再判断输入的两个数是整数;
第三,最后比较两个数的大小。
脚本1如下
#!/bin/bash
#write by wtf
#date:2017-7-5
a=$1
b=$2
if [ $# -ne 2 ];then
echo "Please enter two Numbers!"
exit 1
fi
expr $a + 1 &>/dev/null
RETVAL1=$?
expr $b + ! &>/dev/null
RETVAL2=$?
if [ $RETVAL1 -ne 0 -a $RETVAL2 -ne 0 ];then
echo "Please enter two int!"
exit 2
fi
if [ $a -lt $b ];then
echo "$a<$b"
exit 0
fi
if [ $a -gt $b ];then
echo "$a>$b"
exit 0
fi
if [ $a -eq $b ];then
echo "$a=$b"
exit 0
fi
脚本1说明
说明:上面脚本包括四个部分,分别是:
(1)设置两个传参;
(2)判断输入的是否是两个参数;
(3)判断输入的两个参数是否是整数;
(4)比较两个整数的大小。
脚本2如下
#!/bin/bash
#write by wtf
#date:2017-7-5
#version:v1.2
a=$1
b=$2
expr $a + 1 >/dev/null 2>/dev/null
RETVAL1=$?
expr $b + 1 >/dev/null 2>/dev/null
RETVAL2=$?
if [ $# -ne 2 ];then
echo "please enter two number!"
exit 1
elif [ $RETVAL1 -ne 0 ]||[ $RETVAL2 -ne 0 ];then
echo "please enter two int!"
exit 2
fi
if [ $a -lt $b ];then
echo "$a<$b"
exit 0
fi
if [ $a -gt $b ];then
echo "$a>$b"
exit 0
fi
if [ $a -eq $b ];then
echo "$a=$b"
exit 0
fi
脚本2说明
说明:上面脚本可以分为三个部分:
(1)第一部分设置传参
(2)做两个判断:判断传参是否时两个,判断传参是否时整数;
(3)比较两个传参的大小。
脚本3如下【老男孩老师的脚本】
#!/bin/bash
#write by wtf
#date:2017-7-5
#version:v1.3
read -p "please enter two num:" a b
expr $a + 1 &>/dev/null
RETVAL1=$?
expr $b + 1 &>/dev/null
RETVAL2=$?
if [ -z "$a" ]||[ -z "$b" ]
then
echo "please enter two num again!"
exit 1
elif test $RETVAL1 -ne 0 -o $RETVAL2 -ne 0
then
echo "please enter two int!"
exit 2
elif [ $a -lt $b ]
then
echo "$a<$b"
elif [ $a -eq $b ]
then
echo "$a=$b"
else
echo"$a>$b"
fi
exit 0
脚本3说明
转载于:https://blog.51cto.com/wutengfei/1944798