是否保证bash for循环中的迭代顺序?

时间:2016-05-17 13:31:20

标签: linux bash glob

假设我在bash中有一个for循环,它看起来像这样:

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

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

1 个答案:

答案 0 :(得分:2)

根据bash man page

  

路径名扩展

     

分词后,除非设置了-f选项,否则bash会扫描   每个单词的字符*,?和[。如果其中一个字符   出现,然后这个词被视为一个模式,并替换为   按字母顺序排序的匹配模式的文件名列表(请参阅   模式匹配如下)。

因此,由于全局扩展规则,文件将以字母顺序(取决于您的语言环境,请参阅注释)进行处理。