[unix] 왜 모든 텍스트에 대해; 네 번 반복합니까?

이것은 버그입니까 아니면 기능입니까? 인용되지 않은 영숫자에
대해 발생하는 것 같습니다 .

GNU bash, 버전 4.1.5 실행

for alpha01234; do echo $((++i)); done

산출:

1
2
3
4



답변

다음과 같이 for복합 명령 의 기능입니다 help for.

for: for NAME [in WORDS ... ] ; do COMMANDS; done

목록에서 각 구성원에 대한 명령을 실행하십시오.

for루프 아이템 목록의 각 구성원에 대한 일련의 명령을 실행한다. 경우 in WORDS ...;존재하지 않는, 다음 in "$@"가정한다. 각 요소에 대해 WORDS, NAME그 요소를 설정하고,이 COMMANDS실행된다.

따라서 인용 한 코드는 아마도 4 개의 매개 변수로 호출 된 스크립트에서 실행될 것입니다.


답변

for x; do …에 대한 바로 가기입니다 for x in "$@"; do …: 그것은 위치 매개 변수 반복 할. 루프가 네 번 반복되면 네 개의 위치 매개 변수 ( $1~ $4) 가 있음을 의미합니다 .


답변