我有一个打印数字的功能
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
$
这可能只是一个错误。