while 循环如何在 shell 脚本中针对 FALSE 条件执行?

while 循环如何在 shell 脚本中针对 FALSE 条件执行?

我尝试了一些例子,但我不清楚。

第一个例子

#!/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 ...

相关内容