以read读入方式实现:
#!/bin/bash
function IsNumber(){
if [ -z $1 ]; then
# echo "need var!"
return 2
fi
echo $1 | grep -q '[^0-9]'
af1=$?
if [ $af1 -ge 1 ]; then
#this is number,output
# echo "number"
return 0
else
# echo "not number"
return 1
fi
}
read -p "please input a number:" x
IsNumber $x #判断第一次输入是否是数字
if [ $? -gt 0 ]; then
echo "This is not number ,break #1 !"
exit 1
fi
read -p "please input another number:" y
IsNumber $y #判断第二次输入是否是数字
if [ $? -gt 0 ]; then
echo "This is not number ,break #2 !"
exit 1
fi
if [ $x -gt $y ]; then
echo $x " >" $y
elif [ $x -eq $y ]; then
echo $x "=" $y
else
echo $x "<" $y
fi
--------------------------以下是从互联网获得代码,与上面的代码功能一致------------------------------------------
read -p "Please input two Number: " -a Arr_str
echo ${Arr_str[*]} | grep -E "^[0-9 ]{1,}$" &>/dev/null || exit
if [ ${#Arr_str[*]} -eq 2 ];then
if [ ${Arr_str[0]} -eq ${Arr_str[1]} ];then
echo "${Arr_str[0]} == ${Arr_str[1]}"
elif [ ${Arr_str[0]} -gt ${Arr_str[1]} ];then
echo "${Arr_str[0]} > ${Arr_str[1]}"
else
echo "${Arr_str[0]} < ${Arr_str[1]}"
fi
else
echo "Please input two Number"
fi
此段代码read使用了数组接收输入数字,同样做了是否是数字的按断。
-------------------------------------------------------------------------------------------------------------------------------------------
以传参方式:
#!/bin/bash
function IsNumber(){
if [ -z $1 ]; then
# echo "need var!"
return 2
fi
echo $1 | grep -q '[^0-9]'
af1=$?
if [ $af1 -ge 1 ]; then
#this is number,output
# echo "number"
return 0
else
# echo "not number"
return 1
fi
}
#判断第一个参数是否存在
if [ -z $1 ]; then
echo "please number ,break #1 !"
exit 1
fi
IsNumber $1 #判断第一个参数是否是数字
if [ $? -gt 0 ]; then
echo "This is not number ,break #1 !"
exit 1
fi
#判断第二个参数是否存在
if [ -z $2 ]; then
echo "please another number ,break #2 !"
exit 1
fi
IsNumber $2 #判断第二个参数是否是数字
if [ $? -gt 0 ]; then
echo "This is not number ,break #2 !"
exit 1
fi
x=$1
y=$2
if [ $x -gt $y ]; then
echo $x " >" $y
elif [ $x -eq $y ]; then
echo $x "=" $y
else
echo $x "<" $y
fi
--------------------------以下是从互联网获得代码,与上面的代码功能一致------------------------------------------
#!/usr/bin/bash
echo $1 | grep -E "^[0-9 ]{1,}$" &>/dev/null || exitecho $2 | grep -E "^[0-9 ]{1,}$" &>/dev/null || exit
if [ $# -eq 2 ];then
if [ $1 -eq $2 ];then
echo "$1 == $2"
elif [ $1 -gt $2 ];then
echo "$1 > $2"
else
echo "$1 < $2"
fi
else
echo "Please input two Number"
fi
-------------------------------------------------------------------------------------------------------------------------------------------
本文重点总结:
1.对输入参数的合理性判断,如是否输入,输入的是否是数字
2.封装函数,重复利用代码
3.条件语句if ,elif,else的用法
4.逻辑条件判断
5.read的用法