读取= 0时停止读取

时间:2011-08-26 01:32:32

标签: linux shell terminal

我正在尝试做类似的事情:

  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

2 个答案:

答案 0 :(得分:2)

您正在阅读的变量是$number,因此请在循环中引用而不是$read

空格很重要,因此请确保在循环中的所有项目之前,之后和之间包含空格。 (令人困惑的是,您必须i=0等作业语句中包含空格。i = 0是错误的。)

为了更好地衡量,请在变量周围使用双引号。这是一个很好的做法,这样如果用户点击输入而不键入数字,那么你的脚本就不会对空字符串进行barf。

while [ "$number" != "0" ]; do

此外,您的i++不对。有多种方法可以写出来,最简单的方法是:

let i++

答案 1 :(得分:0)

在这种情况下,无限循环是合适的,因为你知道你想要(提示)break离开循环的条件。在sh中获得无限循环的方法是:while true; do ...; done

此外,read有一个-p选项,可让您提示(因此您知道要求您输入的内容):read -p "Enter a number: " number