我使用此代码直到[$ i -le 180]时出现一元运算符错误

时间:2016-07-09 09:08:50

标签: shell operator-keyword

当我使用以下代码时

until [ $i -le 180 ]

我收到此错误

[: -le: unary operator expected

1 个答案:

答案 0 :(得分:0)

很容易重现:

until [ $i -le 180 ]
do
    echo $i
    (( i++ ))
done
gash.sh: line 3: [: -le: unary operator expected

这是因为$i为空。您可以使用以下任一方法来避免错误:

until [[ $i -le 180 ]]

until (( $i <= 180 ))

但是,在这两种情况下,$i将评估为零,因此您必须使用大于180的值初始化i才能运行循环。