修正する

修正する

数字を印刷する機能があります

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
$ 

これは単なるバグかもしれません。

関連情報