Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Iterating over a set of arrays



On Mon, 09 Jun 2014 12:05:51 +0200
Thorsten Kampe <thorsten@xxxxxxxxxxxxxxxx> wrote:
> this is originally a bash question but I'd also be interested in a 
> zsh solution (or if there is no solution).
> 
> I'd like to get the second element of a set of arrays.
> 
> arrayA=(a1 a2 a3)
> arrayB=(b1 b2 b3)
> arrayC=(c1 c2 c3)
> 
> The output should be
> 
> a2
> b2
> c2

The (P) flag does what you want.  Remember the array indexing is (by
default) different from bash.


for a in array{A,B,C}; do
  print ${${(P)a}[2]}
done


You need the extra braces to ensure the result of the name substitution
gets the index, not the original variable.

pws



Messages sorted by: Reverse Date, Date, Thread, Author