for in 루프에 다음이 있다고 가정해 보겠습니다.
for i in /apps/textfiles/*.txt
do
do something
done
이제 그 안에 50개의 파일이 있다고 가정해 보겠습니다./응용 프로그램/텍스트 파일/
파일은 어떤 순서로 선택되나요?
답변1
Bash의 파일 이름 확장자는 정렬됩니다.알파벳 순서.
Bash는 각 단어에서 "
*
", "?
" 및 "[
" 문자를 검색합니다. 이러한 문자 중 하나가 발생하면 해당 단어는 패턴으로 처리되고 [...] 패턴과 일치하는 파일 이름의 알파벳순 목록으로 대체됩니다.
와일드카드 컨텍스트가 루프의 일부라는 것은 아무런 차이가 없습니다 for
.
알아채다알파벳순으로정렬은 여전히 다음과 같습니다LC_COLLATE
바꾸다:
LC_COLLATE
이 변수는 파일 이름 확장 결과를 정렬할 때 사용되는 데이터 정렬을 결정하고 파일 이름 확장 및 패턴 일치에서 범위 표현식, 동등 클래스 및 정렬 순서의 동작을 결정합니다(파일 이름 확장 참조).