为什么我的shell脚本不起作用?

时间:2016-02-24 06:59:03

标签: bash shell

我正在使用bash,这是我的代码

for i in $(seq 20)
do 
     if [ $i % 3 == 0 ]
     then 
            echo HI
     else 
            echo $i
     fi
done

所以输出应该是: 1 2 嗨 4 五 嗨 ... 等等。 但是当我运行shell时,我一直收到这个错误。 script.sh 4:[:1:意外的运算符 1 然后它会一直持续到20岁。 我尝试了不同的东西,但我无法让它发挥作用。

4 个答案:

答案 0 :(得分:3)

更简单:

MyXmlRoot

答案 1 :(得分:1)

您需要将包含if的行更改为:

 if [[ $((i%3)) == 0 ]]

这将有效。

答案 2 :(得分:0)

使用此

for i in {1..20}
do 
     if [ `expr $i % 3` == 0 ]
     then 
            echo HI
     else 
            echo $i
     fi
done

答案 3 :(得分:0)

应该是下面提到的格式,

如果[$ i%3 == 0]; 然后

但如果你引入“==”符号,它只会产生1到20的增量值。