Shell for循环语法错误

时间:2014-05-07 21:16:04

标签: shell

我在shell中进行for循环,如下所示:

for i in {1..10}
  do
    if [ $ [ i % 2 ] = 1 ] then
    echo $i "is odd"
  fi
done

我这样做了吗?unexpected token 'fi'附近有语法错误。

2 个答案:

答案 0 :(得分:2)

你可以像这样使用它:

for i in {1..10}; do
    if [ `expr $i % 2` -eq 1 ]; then
       echo "$i is odd"
    fi
done

编辑:使用BASH可以:

for i in {1..10}; do
    ((i%2)) && echo "$i is odd"
done

1 is odd
3 is odd
5 is odd
7 is odd
9 is odd

要执行算术,您需要在Unix shell中使用expr命令。如果您正在使用bash,那么您可以使用(( and ))算术评估程序。

答案 1 :(得分:2)

不,你不是。

if ((i%2==1))
then
   ...
fi