shell第十四讲一个脚本的问题过滤不了0 啊

回复 收藏

12.jpg

123.png 

sum=0nu1=gowhile [ ! -z $nu1 ];do    read -p "please input a number:" a    nu1=`echo $a |sed 's/[0-9]//g'`    if [ ! -z $nu1 ]    then        echo "error,please input again!"    else        for ((i=1;i<=$a;i++))        do            sum=$[$sum+$i]        done        echo "$sum"   fidone

2016-11-17 19:12 举报
已邀请:
0

nx454352609

赞同来自:

QQ截图20161119191357.png

0

18608405017

赞同来自:

#!/bin/bash 

##输入一个数,必须大于1,求1到该数的和

i=0

read -t 10 -p "please input a number:" n

m=`echo $n|sed 's/[0-9]/ /g'`

if [ -z $m ] && [ $n -gt 1 ]

then

     while (($i<$n))

     do

          i=$i+1

          sum=$(($sum+$i))

     done

     echo $sum

else

     echo "error,retry!"

fi

0

SUNHAO

赞同来自:

6.png

这样也可以啊 

0

lanse

赞同来自:

#!/bin/bash

sun=0

read -p 'pls a number:' n

#判断传参是否小于1

while [ $n -lt 1 ]

do

    read -p 'pls a number:' n

done

#判断传参是否为空

[ -z $n ]&& exit 2

#判断传参为整数,非小数以及字符串

expr $n + 1 &>/dev/null

[ $? -ne 0 ]&& exit 3

#计算

for i in `seq 1 $n`

do

    sun=$(($i+$sun))

done

echo $sun

0

chiang1213

赞同来自:

#!/bin/bash
SUM=1
SUM01=0
function  INPUT_NUM () {
while :;
do
read -p 'Input a num(the num > 1): ' NUM
 if [[ $NUM =~ ^[1-9][0-9]*$  ]] && [[ $NUM -gt 1 ]]
 then
 echo -n "1"
  while [ ! $SUM -gt $NUM ];
  do
   ((SUM01=$SUM+$SUM01))
 if [ $SUM -gt 1 ]
 then
 echo -n "+$SUM"
 fi
  ((SUM=$SUM+1))
  done
echo -n "=$SUM01"
 break
 fi
done
}

INPUT_NUM


0

rr535201

赞同来自:

#!/bin/bash

#This is a small script about somedatesum.sh.

#Program:

#2017-06-09-15:32:37        rengang                firstrelease

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/root/bin:

export PATH

while :; do

        read -p "Please input a number: " num

        [ $num -gt 1 ] && break 

done

declare -i sum=0

for i in `seq 1 $num`;do

        let sum+=$i

done

echo $sum

欢迎指正交流

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: