我正在使用ZSH_VERSION=5.9
并且有这个脚本,它可以按预期工作:
integer count=3
while true ; do
echo $count
(( count-- ))
if (( count == 0 )) break
done
echo Finally: $count
echo ok
3
它从到倒数1
,然后说:Finally: 0
和ok
。
但是让我们do ... done
用{ ... }
这样的方式替换该块:
integer count=3
while true ; {
echo $count
(( count-- ))
if [[ $count == 0 ]] break
}
echo Finally: $count
echo ok
绝对没有错误消息,但输出令人困惑:
3
Finally: 2
ok
2
Finally: 1
ok
1
我完全不知道为什么会这样,除非解析器有问题。还是我错误地使用了替代的 while 循环语法?当我在刚启动的 shell 中时会发生这种情况。