我开始学习bash脚本。我写了简单的while循环,但它不起作用。 它说:命令没有找到。有人知道为什么吗? 这是我的代码:
let x=5; while [$x -lt 10];do echo "x is : $x";let x=$x+1; done
答案 0 :(得分:5)
添加空格。
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
'。例如,您可以编写“test -d /
”代替“[ -d / ]
”。方括号必须分开 参数;例如,'[-d /]
'没有达到预期的效果。 由于“test EXPR
”和“[ EXPR ]
”具有相同的含义,因此只有 前形式将在下面讨论。
因此,等价物看起来像:
let x=5; while test $x -lt 10;do echo "x is : $x";let x=$x+1; done