更新

更新

我有一个打印数字的功能

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 兼容。

如果重要的话,我的环境:

  • 操作系统 X 10.11.5
  • zsh 5.0.8 (x86_64-apple-darwin15.0)
  • GNU bash,版本 3.2.57(1)-release (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
$ 

这可能只是一个错误。

相关内容