답변:
{ ...; }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 ...; donePOSIX를하지 않습니다.
Bash for 루프에서 "do"키워드의 목적은 무엇입니까?를 참조하십시오 . 더 많은 for루프 양식.
¹ 이전 버전이나 그 기반이되는 Forsyth 쉘이 아닙니다. 그것은 1994 년 5.1.1에 추가되었고 아마도 그것이 문서화 된 이유를 설명 할 것입니다