小编jus*_*631的帖子

为什么 POSIX for 循环允许在 ; 中使用 `for 名称 do`(列表中没有单词)语法?

我试图理解POSIX shell 语法规则中的 for 循环语法:

for_clause       : For name                                      do_group
                 | For name                       sequential_sep do_group
                 | For name linebreak in          sequential_sep do_group
                 | For name linebreak in wordlist sequential_sep do_group
Run Code Online (Sandbox Code Playgroud)

最后一个(几乎是默认的)和前两个是有道理的,引用 posix:

省略: in word... 应等同于: in "$@"

所以前两个只是循环 shell 脚本的参数。

我只是不明白由组成的 for 循环是如何for name in; do echo $name; done有意义的。我认为它仍然只是循环 shell 脚本的参数,但创建一个小脚本似乎并非如此。for 循环似乎有点被忽略了。那么第三个变体的目的是什么?

bash posix

12
推荐指数
2
解决办法
1918
查看次数

标签 统计

bash ×1

posix ×1