我尝试了一些例子,但我不清楚。
第一个例子
#!/bin/bash
i=0
while [ $i -lt 10 ]
do
echo "$i"
i=`echo "$i + 1" | bc`
done
输出 ===> 0,1,2,3,4,5,6,7,8,9
现在,当我执行 while "while [ true ] " 时,它会将输出作为无限循环 //我同意//
但当我再次执行 while "while [ false ] " 时,它会将输出作为无限循环给出。 /我不同意/
您能解释一下第二个 while 循环吗?它实际上是如何运作的?
while [ false ] #give the infinite loop
while [ true ] #give the infinite loop
while [ 0 ] #give the infinite loop
while [ 1 ] #give the infinite loop
while [ `ls` ]
while [ `echo 1` ] #give the infinite loop
while((0)) #loop not execute
while((1)) #give the infinite loop
答案1
中既不while [ false ]
是false
命令也不是布尔值。它while
需要一个命令,但[ ... ]
没有运算符,只是检查是否有任何非空字符串。确实如此[ false ]
。从这个意义上讲,它与 相同[ faaaalseeee ]
。
你的意思是:
while true; do ...
while false; do ...