检测 输入整数的合法性,可负数(-1, -2均合法), 可以指定-l(默认参数)传入整数范围,不在范围内则报错。
参数:1或3个或4个, 当3个时,后两个为范围,当4个时,显示指定参数-l。
合法性:正负数的判断,范围的判断。
(1) 判断几个参数
若一个 直接检查整数合法性 若三个 检查整数合法性 和 范围 若四个 参数-l可能出现在任意位置,但 -l 之后的两个参数 必然是范围 其他 报错,退出
#!/bin/bash
#5. 检测 输入整数的合法性,可负数(-1, -2均合法), 可以指定-l(默认参数)传入整数范围,不在范围内则报错。
#参数:1或3个或4个, 当3个时,后两个为范围,当4个时,显示指定参数-l。
#合法性:正负数的判断,范围的判断。
# (1) 判断几个参数
# 若一个 直接检查整数合法性
# 若三个 检查整数合法性 和 范围
# 若四个 参数-l可能出现在任意位置,但 -l 之后的两个参数 必然是范围
# 其他 报错,退出
int_num=0
limit1=-999999999.999
limit2=999999999.999
reg_int='^[1-9][0-9]*$|^[-][1-9][0-9]*$|^0$'
reg_limit1='^0$|^[-][1-9][0-9]*$|^[1-9][0-9]*$|^[-][1-9][0-9]*\.[0-9]*$|^[1-9][0-9]*\.[0-9]*$|^[-]0\.[0-9]*[1-9][0-9]*$|^0\.[0-9]*[1-9][0-9]*$'
reg_limit2='^0$|^[-][1-9][0-9]*$|^[1-9][0-9]*$|^[-][1-9][0-9]*\.[0-9]*$|^[1-9][0-9]*\.[0-9]*$|^[-]0\.[0-9]*[1-9][0-9]*$|^0\.[0-9]*[1-9][0-9]*$'
check_int()
{
if [[ "$1" =~ $reg_in
|