배쉬에서는
C와 유사한 for 루프의 구문은 다음과 같습니다.
for (( expr1 ; expr2 ; expr3 )) ; do commands ; done
의 실행이 세 가지 산술 표현식 , 및/또는
commands
의 계산에 영향을 미쳐 반복 횟수(예: 반복 횟수)가 변경됩니까?expr1
expr2
expr3
아니면 반복(예: 반복 횟수)이
commands
각 반복의 실행에 영향을 받지 않습니까?for 명령의 다른 구문은 다음과 같습니다.
for name [ [in [words ...] ] ; ] do commands; done
각 반복의 실행이
commands
반복 횟수(예: 반복 횟수)에 영향을 줍니까?
답변1
틀림없이:
$ bash -c 'for ((i=0;i<10;i++)); do echo $i; ((i++)); done'
0
2
4
6
8
for ((expr1; expr2; expr3)
양식 에서 expr2
(및 실패가 없는 expr3
경우 )는 루프가 실행될 때마다 평가됩니다. expr2
다른 형식에서 bash는 words
언롤링(명령 대체, 와일드카드 수행 등 포함) 후 루프를 시작합니다. 따라서 name
루프가 시작되면 반복 변수( )의 가능한 값에 영향을 줄 수 없습니다. 물론 당신은 할 수:
$ bash -c 'for i; do echo $i; break; done' _ a b c
a