【发布时间】: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
我已经开始学习 bash 脚本了。我写了简单的while循环,但它不起作用。 据说:找不到命令。有人知道为什么吗? 这是我的代码:
let x=5; while [$x -lt 10];do echo "x is : $x";let x=$x+1; done
【问题讨论】:
标签: linux bash while-loop
添加空格。
while [ $x -lt 10 ];
欲了解更多信息,请查看How to use double or single bracket, parentheses, curly braces的回复:
单括号(
[)通常实际上调用了一个名为[的程序;man test或man [了解更多信息。示例:$ 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 ]) 分开。