我试图理解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
最后一个(几乎是默认的)和前两个是有道理的,引用 posix:
省略:
in word...
应等同于:in "$@"
所以前两个只是循环 shell 脚本的参数。
我只是不明白由组成的 for 循环是如何for name in; do echo $name; done
有意义的。我认为它仍然只是循环 shell 脚本的参数,但创建一个小脚本似乎并非如此。for 循环似乎有点被忽略了。那么第三个变体的目的是什么?