고쳐 쓰다

고쳐 쓰다

숫자를 인쇄하는 기능이 있습니다

myFunc() {
    echo 11
}

이제 C 스타일 for 루프의 표현식에 숫자를 사용하고 싶습니다.

for (( i=1; i<=$(myFunc); i++ )); do
    echo "$i"
done

지쉬가 나한테 줬어

test.sh:5: parse error near `i++ '
test.sh:6: parse error near `i<=$(myFunc); i++ ))...'

그리고 Bash는 예상대로 1에서 11까지 인쇄합니다. 지쉬에게 무슨 일이 일어났나요? 이 기능이 Bash와 호환되기를 바랍니다.

중요한 경우 내 환경은 다음과 같습니다.

  • OSX 10.11.5
  • zsh 5.0.8 (x86_64-apple-darwin15.0)
  • GNU bash, 버전 3.2.57(1)-릴리스(x86_64-apple-darwin15)

고쳐 쓰다

이는 버그일 수 있으며 최신 버전에서는 수정되었을 수 있습니다. 확인되면 이 질문은 삭제하겠습니다.

답변1

내 zsh에서 작동합니다.

$ zsh --version
zsh 5.7.1 (x86_64-pc-linux-gnu)
$ myFunc() {
    echo 11
}
$ for (( i=1; i<=$(myFunc); i++ )); do
    echo "$i"
done
1
2
3
4
5
6
7
8
9
10
11
$ 

이것은 단지 버그일 수도 있습니다.

관련 정보