我正在尝试做这样的事情:
while[$read!="0"];在这个程序中
#!/bin/sh
i=0
cont=0
while[$read!="0"]; do
read number
cont=`expr $cont + $number`
i++
done
cont=`expr $cont / $i -1`
echo当我给它一个0 tnx时,我想停止对条目求和。
发布于 2011-08-26 09:44:21
您正在读取的变量是$number,因此在循环中引用该变量而不是$read。
空格很重要,因此请确保在循环中的所有项之前、之后和之间都包含空格。(令人困惑的是,不能在像i=0这样的赋值语句中包含空格。( i = 0错了。)
为了更好地衡量,请在变量两边使用双引号。这是一种很好的实践,因此如果用户在没有键入数字的情况下按enter键,脚本就不会在空字符串上呕吐。
while [ "$number" != "0" ]; do此外,您的i++也不正确。有多种方法可以编写,最简单的是:
let i++发布于 2011-08-26 09:51:40
在这种情况下,无限循环将是合适的,因为您知道希望(提示) break退出循环的条件。在sh中获得无限循环的方法是:while true; do ...; done
此外,read还提供了一个-p选项,让您看到提示(这样您就知道需要输入什么内容):read -p "Enter a number: " number
https://stackoverflow.com/questions/7199163
复制相似问题