while循环将执行3次。
i=0
while [[ $i -lt 3 ]]
do
echo "haha"
((i++))
done
输出:
haha
haha
haha
让我在while和do之间添加一行echo "i am here"
。
i=0
while [[ $i -lt 3 ]]
echo "i am here"
do
echo "haha"
((i++))
done
为什么它变成死循环,永不停止,输出
i am here
haha
永远?
答案 0 :(得分:1)
查看--help
上的while
bash。
bash.exe"-3.1$ help while
while: while COMMANDS; do COMMANDS; done
Expand and execute COMMANDS as long as the final command in the
`while' COMMANDS has an exit status of zero.
您案例中while
的最终命令是
echo "i am here"
它将始终成功执行,因为它不会失败 在这种情况下,退出状态为零 - 始终。
比较https://www.gnu.org/software/bash/manual/html_node/Exit-Status.html
出于shell的目的,退出状态为零的命令已成功。
所以你编写了一个无限循环。