shellscript 上的 while/until 循环条件下的 Break 命令是否适用于每个 POSIX 环境?

shellscript 上的 while/until 循环条件下的 Break 命令是否适用于每个 POSIX 环境?

符合 POSIX 标准的 shell 代码是否while break; do echo x; done不输出任何内容,并且在每个 shell 上都没有错误?

答案1

是的。来自规格break:

Break 实用程序应从 (...) 封闭的 for、while 或 Until 循环中退出。

如果 (...) 命令是:(...),则循环应包含中断或继续命令

  • 包含在与循环关联的复合列表中(在循环 do-group 的复合列表中,或者如果循环是 while 或until 循环,则在 while 或until 保留字后面的复合列表中),并且(……)

breakorcontinue放入循环的条件部分并不常见,可能会让读者感到困惑,但它符合 POSIX 标准。

相关内容