当我使用以下代码时
until [ $i -le 180 ]
我收到此错误
[: -le: unary operator expected
答案 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
才能运行循环。