Kos*_*hur 8 shell wildcards for
假设我有一个 for in 循环:
for i in /apps/textfiles/*.txt
do
do something
done
Run Code Online (Sandbox Code Playgroud)
现在说我在/apps/textfiles/ 中有 50 个文件
将按什么顺序选取文件?
Bash 中的文件名扩展按字母顺序排序。
Bash 扫描每个单词中的字符 '
*
'、'?
' 和 '[
'。如果出现这些字符中的一个,则该单词被视为一个模式,并替换为与该模式匹配的按字母顺序排序的文件名列表 [...]。
在这里,您的通配上下文是for
循环的一部分并没有什么区别。
请注意,字母排序仍遵循LC_COLLATE
变量定义的整理顺序:
LC_COLLATE
此变量确定在对文件名扩展结果进行排序时使用的整理顺序,并确定文件名扩展和模式匹配中的范围表达式、等价类和整理序列的行为(请参阅文件名扩展)。