シェルスクリプトで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]"を再実行すると、出力は無限ループとして表示されます。 /同意しません/

2番目の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 ...

関連情報