シェルスクリプトのwhile / untilループ内のBreakコマンドは、すべてのPOSIX環境で機能しますか?

シェルスクリプトのwhile / untilループ内のBreakコマンドは、すべてのPOSIX環境で機能しますか?

POSIX準拠のシェルコードはwhile break; do echo x; done何も印刷せず、すべてのシェルでエラーなく実行されますか?

答え1

はい。 ~から仕様break:

Breakユーティリティは、for、while、またはUntilループを含む(...)で終了する必要があります。

(...)コマンドが(...)の場合、ループには中断または継続コマンドを含める必要があります。

  • ループに関連付けられた複合リストに含まれています(ループのdoグループの複合リストにある場合、またはループがwhileまたはUntilループの場合はwhileまたはUntil予約語の次の複合リストにあります)および(.. .)

ループの条件付き部分にbreakまたはを入れることは一般的ではなく、読者に混乱を与える可能性がありますが、POSIXと互換性があります。continue

関連情報