쉘 스크립트에서 FALSE 조건에 대해 while 루프를 실행하는 방법은 무엇입니까?

쉘 스크립트에서 FALSE 조건에 대해 while 루프를 실행하는 방법은 무엇입니까?

몇 가지 예를 시도했지만 명확하지 않습니다.

첫 번째 예

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

관련 정보