【问题标题】:stop a reading when read = 0当 read = 0 时停止读数
【发布时间】:2011-08-26 01:32:31
【问题描述】:

我正在尝试做这样的事情:

  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

【问题讨论】:

    标签: linux shell terminal


    【解决方案1】:

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

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

    为了更好地衡量,请在变量周围使用双引号。这是一个很好的做法,这样如果用户在没有输入数字的情况下点击回车,您的脚本就不会在空字符串上出现问题。

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

    另外,您的i++ 不正确。有多种写法,最简单的是:

    let i++
    

    【讨论】:

      【解决方案2】:

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

      另外,read 有一个 -p 选项,可让您获得提示(这样您就知道被要求输入的内容):read -p "Enter a number: " number

      【讨论】:

        猜你喜欢
        • 2013-05-24
        • 2016-08-03
        • 2022-11-25
        • 2016-01-28
        • 2012-12-19
        • 1970-01-01
        • 1970-01-01
        • 2019-05-11
        • 1970-01-01
        相关资源
        最近更新 更多