请注意,Robert的答案是正确的,并且在sh也是。您可以(可移植地)进一步简化它:for i in "$@"相当于:for i也就是说,你不需要任何东西!测试($是命令提示符):$ set a b "spaces here" d
$ for i; do echo "$i"; donea
b
spaces here
d
$ for i in "$@"; do echo "$i"; donea
b
spaces here
d我第一次读到这件事是在Unix编程环境克尼汉和派克。在……里面bash, help for文件如下:for NAME [in WORDS ... ;] do COMMANDS; done如果'in WORDS ...;'不存在,那么'in "$@"'都是假设的。