【问题标题】:simple while loop in bashbash中的简单while循环
【发布时间】:2014-03-09 22:22:17
【问题描述】:

我已经开始学习 bash 脚本了。我写了简单的while循环,但它不起作用。 据说:找不到命令。有人知道为什么吗? 这是我的代码:

let x=5; while [$x -lt 10];do echo "x is : $x";let x=$x+1; done

【问题讨论】:

    标签: linux bash while-loop


    【解决方案1】:

    添加空格。

    while [ $x -lt 10 ];
    

    欲了解更多信息,请查看How to use double or single bracket, parentheses, curly braces的回复:

    单括号([)通常实际上调用了一个名为[的程序; man testman [ 了解更多信息。示例:

    $ VARIABLE=abcdef
    $ if [ $VARIABLE == abcdef ] ; then echo yes ; else echo no ; fi
    yes
    

    另外,这就是info test 对此事的看法:

    'test' 有另一种形式,使用开方和闭方 括号代替前导'test'。例如,您可以写成“[ -d / ]”,而不是“test -d /”。方括号必须分开 论据;例如,'[-d /]' 没有预期的效果。 由于 'test EXPR' 和 '[ EXPR ]' 具有相同的含义,因此只有 下面讨论前一种形式。

    因此,等效项如下所示:

    let x=5; while test $x -lt 10;do echo "x is : $x";let x=$x+1; done
    

    【讨论】:

    • 没错。条件 [...] 只是一个 shell 命令,与任何其他命令一样,命令名称 ([) 必须通过空格与其参数 (-lt 10 ]) 分开。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    • 2021-05-29
    • 1970-01-01
    • 2014-11-11
    • 2014-10-10
    • 2013-09-02
    • 2011-06-17
    相关资源
    最近更新 更多