错误:在bash shell脚本中循环

时间:2016-05-06 11:40:16

标签: linux bash shell do-while

我正在尝试运行名为test.sh的简单脚本,其中echo数字以递增方式显示。但不知何故,它显示错误。

#!/bin/bash

clear
a= 0

while [ $a <= 5 ];
do
    echo $a
    a=$(( a+1 ))
done

错误:

./test.sh: line 4: 0: command not found
./test.sh: line 6: =: No such file or directory

2 个答案:

答案 0 :(得分:1)

Anubhava已经提到了更好的方法,但这是你答案的正确版本。

#!/bin/bash

clear
a=0

while [[ "$a" -lt 5 ]];
do
    echo $a
    a=$(($a+1))
done

答案 1 :(得分:1)

您的代码的第一个问题是a= 0,在分配时不允许使用空格(在=之前或之后)。

其次,这部分[ $a <= 5 ]。您必须在此使用-lt代替<=

由于您已经熟悉(( ))构造,我建议您使用它,这样可以将整数与<=>=等进行比较。

您的代码具有上述修改:

#!/bin/bash

clear
a=0

while (( $a <= 5 ));
do
    echo $a
    a=$(( a+1 ))
done