bash for循环中迭代次序是否有保证?

假设我在bash中有一个for循环,如下所示:

for i in $MYDIR/*.jar do # do something with files done 

迭代的顺序是否有保证,即循环是否总是按相同的顺序处理文件? 如果有保证,是按字母顺序吗?

Solutions Collecting From Web of "bash for循环中迭代次序是否有保证?"

根据bash手册页 :

路径名称扩展

在分词之后,除非设置了-f选项,否则bash会扫描每个单词的字符*,?和[。 如果出现这些字符之一,那么这个单词就被认为是一个模式,并被替换为一个按字母顺序排列的匹配模式的文件名列表(见下面的模式匹配)。

所以,由于globbing扩展规则,这些文件将按字母顺序处理(取决于您的语言环境,请参阅注释)。