Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何在Shell脚本中执行For循环而不是While循环_Linux_Bash_Shell_Sh - Fatal编程技术网

Linux 如何在Shell脚本中执行For循环而不是While循环

Linux 如何在Shell脚本中执行For循环而不是While循环,linux,bash,shell,sh,Linux,Bash,Shell,Sh,我试图实现for循环,而不是while循环,但也不知道如何实现。这是我创建的while循环脚本。如何将其转换为for循环而不是while循环?我不太明白for循环是如何工作的 #/bin/bash 阅读-p“要评分的论文数量: “努帕 av=百万美元 而[$av-gt 0]; 做 平均价值=$($av-1)) echo“输入一个数字(1-100):” 读取数值 如果[$num-ge 1&$num-le 100]];然后 回声“” 其他的 echo“输入一个介于1-100之间的数字 " 平均价值=

我试图实现for循环,而不是while循环,但也不知道如何实现。这是我创建的while循环脚本。如何将其转换为for循环而不是while循环?我不太明白for循环是如何工作的

#/bin/bash

阅读-p“要评分的论文数量: “努帕

av=百万美元 而[$av-gt 0]; 做 平均价值=$($av-1)) echo“输入一个数字(1-100):” 读取数值 如果[$num-ge 1&$num-le 100]];然后 回声“” 其他的 echo“输入一个介于1-100之间的数字 " 平均价值=$($av+1)) 总计=$($total-num)) fi 总计=$($total+num)) 完成 平均值=$($total/$numpp)) 回波平均等级=$averag% 回音“完成”

这将提供以下输出:

5
4
3
2
1

您可以查看更多使用while/for/until编写循环的方法:

我修改了您的脚本以使用
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"
for((av=numpap;av>0;--av));做。。。完成
5
4
3
2
1
#!/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"