假設我有一個下面的 for in 迴圈:
for i in /apps/textfiles/*.txt
do
do something
done
現在假設我裡面有 50 個文件/應用程式/文字檔/
將以什麼順序選擇文件?
答案1
Bash 中的檔案名稱擴充是排序按字母順序。
Bash 掃描每個單字中的字元「
*
」、「?
」和「[
」。如果出現這些字元之一,則該單字被視為一種模式,並替換為與模式相符的按字母順序排序的檔案名稱清單 [...]。
通配上下文是循環的一部分,這並沒有什麼區別for
。
注意按字母順序排列的排序仍然遵循由LC_COLLATE
多變的:
LC_COLLATE
此變數決定對檔案名稱擴充結果進行排序時所使用的排序規則,並確定範圍表達式、等價類別以及檔案名稱擴充和模式匹配中的排序序列的行為(請參閱檔案名稱擴充)。