计算两数值之间的和-第二版 本文共有3261个字,关键词: ``` #!/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 ``` 「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」 赞赏 × 几人行 (๑>ڡ<)☆谢谢老板~ 2元 5元 10元 50元 100元 任意金额 2元 使用微信扫描二维码完成支付 版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。 shell脚本 2017-03-15 评论 1754 次浏览