我怎样才能添加一个单词到Zsh数组中的每个元素?

我在Zsh做过:

array={geometry, analysis, topology, graph theory, calculus} echo $array 

然后我想为“math:微积分”这样的每个元素添加单词“math:”:

 while (( i++ < 10)); { echo math:$array[i] } 

但它不起作用? 为什么?

在zsh中为我工作正常,分配从以下变为:

 array={geometry, analysis, topology, graph theory, calculus} 

 array=(geometry, analysis, topology, graph theory, calculus) 

但zsh有很多选项可以改变它的行为。 也许输出'setopt'可能会有所帮助。

做就是了:

 array=(geometry analysis topology "graph theory" calculus) print -l math:${^array} 

或者检查${^var}表单的RC_EXPAND_PARAM

韦尔普,我要在这里出去(因为我不接受支持代码是正确的),并说“echomath:$ array [i]”缺less一个美元符号,应该是“echomath:$arrays[$ i]于”

迭代遍历一个数组可以更好的工作for因为你不会像代码那样运行结束(除非你用$ {#array [*]}来限制数组的大小)。

另外,我假设你不想把逗号作为string的一部分,你应该使用圆括号而不是大括号。

 array=(geometry analysis topology "graph theory" calculus) for i in $array; do echo math:$i; done