이것은 버그입니까 아니면 기능입니까? 인용되지 않은 영숫자에
대해 발생하는 것 같습니다 .
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
) 가 있음을 의미합니다 .