使用 zsh 我可以简单地使用$5
. 但是如果5
是一个变量呢?我想出了这种方法来通过索引打印出前五个参数(而不是 just echo $1 $2 $3 $4 $5
):
for i in {1..5}
do
echo $(eval echo "\$$i")
done
但肯定有更好的方法吗?
我知道有更简单的方法可以遍历所有参数。在我的特殊情况下,我想向后循环遍历参数列表。对此的帮助也将不胜感激。
要遍历位置参数,只需使用 for 循环:
for x; do echo $x; done
反向遍历它们:
for x in "${(Oa)@}"; do echo $x ; done
要反转参数:
set "${(Oa)@}"
在 zsh 中(显然只有 zsh )@
是一个数组。实际上,您可以像这样使用它:
for i in {1..5}
do
echo $@[i]
done
至于向后循环,我想您可以结合for i in {$#..1}
使用,$@[i]
但可能有更好的方法。