1

使用 zsh 我可以简单地使用$5. 但是如果5是一个变量呢?我想出了这种方法来通过索引打印出前五个参数(而不是 just echo $1 $2 $3 $4 $5):

for i in {1..5}
do
  echo $(eval echo "\$$i")
done

但肯定有更好的方法吗?


我知道有更简单的方法可以遍历所有参数。在我的特殊情况下,我想向后循环遍历参数列表。对此的帮助也将不胜感激。

4

2 回答 2

3

要遍历位置参数,只需使用 for 循环:

for x; do echo $x; done

反向遍历它们:

for x in "${(Oa)@}"; do echo $x ; done

要反转参数:

set "${(Oa)@}"
于 2012-10-08T12:52:47.200 回答
0

在 zsh 中(显然只有 zsh )@是一个数组。实际上,您可以像这样使用它:

for i in {1..5}
do
  echo $@[i]
done

至于向后循环,我想您可以结合for i in {$#..1}使用,$@[i]但可能有更好的方法。

于 2012-10-07T21:42:07.897 回答