Как сделать цикл For вместо цикла while в сценариях оболочки - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь реализовать циклы вместо циклов while, но понятия не имею, как это сделать.Это сценарий цикла while, который я создал.Как бы я превратил это в цикл for вместо цикла while?Я не совсем понимаю, как работают циклы.

<code>#!/bin/bash</p>

<p>read -p "Number of Papers To Grade:
" numpap</p>

<p>av=$numpap
while [ $av -gt 0 ];
do
  av=$(($av - 1))
  echo "Enter a Number (1-100): "
read num
if [[ $num -ge 1 && $num -le 100 ]] ; then
     echo ""
   else
     echo "Enter a Number Between 1-100
     "
     av=$(($av + 1))
     total=$(($total - num))
   fi
total=$(($total + num))
done
averag=$(($total/$numpap))
echo Average Grade = $averag%
echo "Done"

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Я изменил ваш скрипт для запуска с использованием цикла for:

#!/bin/bash
read -p "Number of Papers To Grade:" numpap

for ((av=numpap; av>0; av--))
do
  echo "Enter a Number (1-100): "
read num
if [[ $num -ge 1 && $num -le 100 ]] ; then
     echo ""
   else
     echo "Enter a Number Between 1-100"
     av=$(($av + 1))
     total=$(($total - num))
   fi
total=$(($total + num))
done
averag=$(($total/$numpap))
echo Average Grade = $averag%
echo "Done"
0 голосов
/ 12 декабря 2018
#!/bin/bash
var=5
for ((value=var; value>0; --value))
do
    echo $value
done

Это дает вывод:

5
4
3
2
1

Вы можете взглянуть на другие способы написания циклов, используя while / for / before: здесь

...