#!/bin/bash
#Version:0.3.1
#Author:stone
#Discription:get sum.
a=1 #给变量赋初始值,用于case选择
function cho() #用于选择返回的输入值的位置
{
while :; do
case $1 in
2)
echo -e "\033[32m1-返回最小值输入.\033[0m"
echo -e "\033[32m2-返回最大值输入.\033[0m"
echo -e "\033[32m直接回车返回当前默认层.\033[0m"
echo -n -e "\033[31m请输入返回哪一个层级:\033[0m"
read n #从键盘获取一个返回层级值
if [ ! -z $n ]; then
n1=$(echo $n |sed 's/[0-9]//g')
if [ -z $n1 ]; then
if [ $n -le 2 -a $n -ge 1 ]; then
a=$n
continue 2
else
echo -e "\033[31m请输入1或者2!\033[0m"
fi
else
echo -e "\033[31m输入不是纯数字!\033[0m"
fi
else
a=$a
continue 2
fi
;;
3)
echo -e "\033[32m1-返回最小值输入.\033[0m"
echo -e "\033[32m2-返回最大值输入.\033[0m"
echo -e "\033[32m3-返回增量值输入.\033[0m"
echo -n -e "\033[31m请输入返回哪一个层级:\033[0m"
read n #从键盘获取一个返回层级值
if [ ! -z $n ]; then #对获取的值进行判断
n1=$(echo $n |sed 's/[0-9]//g')
if [ -z $n1 ]; then
if [ $n -le 3 -a $n -ge 1 ]; then
a=$n
continue 2
else
echo -e "\033[31m请输入1或者2或者3!\033[0m"
fi
else
echo -e "\033[31m输入不是纯数字!\033[0m"
fi
else
a=$a
continue 2
fi
;;
esac
done
}
while :; do
case $a in #case选择语句使用变量进行修正每一次的值
1)
echo -n -e "\033[31m请输入累加的初始值:\033[0m"
read num1
;;
2)
echo -n -e "\033[31m请输入累加的最大值:\033[0m"
read num2
;;
3)
echo -n -e "\033[31m请输入累加的自增量:\033[0m"
read num3
;;
esac
tnum=num${a} #变量的嵌套
eval number=$(echo \$$tnum) #变量的嵌套
if [ ! -z "$number" ]; then #判断输入值是否不空,空则执行下一个循环
n=$(echo $number|sed 's/[0-9]//g') #判断输入是否是纯数字
if [ -z $n ]; then
ar[$a]=$number #将输入的值赋值给数组
if [ $a -eq 2 ]; then #判断最大值是否已经赋值,如果已经赋值则判断大小
if [ ${ar[1]} -gt ${ar[2]} ]; then #判断起始数值是否大于结束数值
echo -e "\033[31m你输入的起始数字大于结束数字!\033[0m"
a=2
cho $a #函数的调用
fi
fi
if [ $a -eq 3 ]; then #判断赋值是否结束,结束则退出循环
price=$((${ar[2]}-${ar[1]}))
if [ ${ar[3]} -gt $price ]; then #判断增量值是否符合标准
a=3
echo -e "\033[31m你输入的增量值不符合要求!\033[0m"
cho $a #函数的调用
else
break #满足所有条件退出循环
fi
fi
let a++ #变量用于数组下标,同时也用于case判断
continue
else
a=$a #任何一次输入不为纯数字时返回相应的case语句
echo -e "\033[31m你输入的不是纯数字\033[0m"
continue
fi
else
a=$a #任何一次输入为空时返回执行相应的case语句
echo -e "\033[31m输入不能为空!\033[0m"
continue
fi
done
sum=0 #用于累加
#以下为调用数组for计算循环
for ((i=${ar[1]};i<=${ar[2]};i+=${ar[3]})); do
sum=$(($sum+$i))
done
echo $sum
「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」
(๑>ڡ<)☆谢谢老板~
使用微信扫描二维码完成支付
