아래에 for in 루프가 있다고 가정해 보겠습니다.
for i in /apps/textfiles/*.txt
do
do something
done
이제 내부에 50개의 파일이 있다고 가정해 보겠습니다./앱/텍스트파일/
파일은 어떤 순서로 선택되나요?
답변1
Bash의 파일 이름 확장이 정렬 중입니다.알파벳순으로.
Bash는 각 단어에서 '
*
', '?
', '[
' 문자를 검색합니다. 이러한 문자 중 하나가 나타나면 해당 단어는 패턴으로 간주되고 [...] 패턴과 일치하는 알파벳순으로 정렬된 파일 이름 목록으로 대체됩니다.
여기서는 글로빙 컨텍스트가 루프의 일부라는 점에서 차이가 없습니다 for
.
참고하세요알파벳순정렬은 여전히 다음에 의해 정의된 대조 순서를 따릅니다.LC_COLLATE
변하기 쉬운:
LC_COLLATE
이 변수는 파일 이름 확장 결과를 정렬할 때 사용되는 조합 순서를 결정하고, 파일 이름 확장 및 패턴 일치 내에서 범위 표현식, 등가 클래스 및 조합 시퀀스의 동작을 결정합니다(파일 이름 확장 참조).