답변:
{ ...; }
70 년대 후반 Unix V7의 Bourne 쉘의 첫 번째 버전 do ...; done
에서 for
루프 대신에 이미 허용되었습니다 ( 소스 코드 참조 ).
모든 ksh
(모두 본 셸 유래의 원래하고 ksh93의 재기록) pdksh
¹ (유도체), bash
(1989 년에 시작부터) 및 zsh
이를지지한다. 나는 ash
파생 상품을 모른다 . POSIX 표준으로 작성된 yash
것이 아닙니다 yash
.
에 zsh
, 지원은 1991 년 2.0 추가되었지만 된 보른 구문을 넘어 대부분의 구조에 대한 짧은 형태의 새로운 범위의 일환으로. 그것은 단지의 for i in 1 2; { ...; }
그것의, for i in 1 2; any-command
(및 그 변형). 그리고이 설명되어 있습니다 및 도입 이후되었습니다 .
AFAIK는 옆에 zsh
만 (모두 문서로 된 pdksh for
과 select
).
에 대해서는 ((init; condition; action))
에서 제공 형태 ksh93
에 의해 복사 된 zsh
과 bash
.
어느 쪽이 ((...))
나 { ...; }
대신에이 do ...; done
POSIX를하지 않습니다.
Bash for 루프에서 "do"키워드의 목적은 무엇입니까?를 참조하십시오 . 더 많은 for
루프 양식.
¹ 이전 버전이나 그 기반이되는 Forsyth 쉘이 아닙니다. 그것은 1994 년 5.1.1에 추가되었고 아마도 그것이 문서화 된 이유를 설명 할 것입니다