符合 POSIX 标准的 shell 代码是否while break; do echo x; done
不输出任何内容,并且在每个 shell 上都没有错误?
答案1
是的。来自规格break
:
Break 实用程序应从 (...) 封闭的 for、while 或 Until 循环中退出。
如果 (...) 命令是:(...),则循环应包含中断或继续命令
- 包含在与循环关联的复合列表中(在循环 do-group 的复合列表中,或者如果循环是 while 或until 循环,则在 while 或until 保留字后面的复合列表中),并且(……)
将break
orcontinue
放入循环的条件部分并不常见,可能会让读者感到困惑,但它符合 POSIX 标准。