真偽を通知するために、if、while、until にはどのような (異なる) 戻り値が必要ですか?

真偽を通知するために、if、while、until にはどのような (異なる) 戻り値が必要ですか?

ifwhile、ステートメントの条件文の期待値について興味がありますuntil。明らかに条件文が適切に機能していないように思われるからです。

trueおよびfalseまたは終了コード、つまり0または を期待していますか{1-255}?

答え1

条件文は終了コードをテストします。ゼロは真、ゼロ以外は偽です。コマンドは、ゼロ ( ) 終了コードtrueを返すため真です。同様に、はゼロ以外の終了コードを返します (実際のところ、 です)。0false1

if true; then echo 'happy days'; fi
if false; then echo 'maths has just died a horrible death'; fi

true; echo "exit status is $?"     # "0"
false; echo "exit status is $?"    # "1"

[ 0 -eq 0 ]; echo "exit status is $?"    # "0"
[ 0 -eq 1 ]; echo "exit status is $?"    # "1"

関連情報