[ZSH] Array in falscher Reihenfolge ausgeben?

cat1510

Well-Known Member
Hi Leutz,

weiss jemand wie ich >einfach< einen Loop von einem Array in umgekehrter Reihenfolge ausgeben lasse?

Hier mal ein Beispiel, was ich meine:

Code:
#!/bin/zsh
#
#
#set -x

TESTARRAY=(3 9 12 18)

for i in $TESTARRAY;do
  echo $i
  sleep 1
done


exit

Klar Ergebnis ist:

3 9 12 18

Nun will ich das nur anderesherum.
Habe noch keine Doku / Referenz gefunden.

Hat jemand einen Tip fuer mich?

MFG


CAT
 

Morfio

Well-Known Member
Gibt wahrscheinlich eine elegantere Möglichkeit, hier mal, wie man es flott machen könnte:

Code:
#!/usr/bin/env zsh
#
#
#set -x

TESTARRAY=(3 9 12 18) 

for ((i=${#TESTARRAY};i>=1;i--))
do
    echo ${TESTARRAY[${i}]}
    sleep 1
done

exit
 

cat1510

Well-Known Member
Hi Morfio,

habe mir auch sowas aehnliches in der Zwischenzeit ausgedacht:

Code:
#!/bin/zsh
#
#
#set -x

TESTARRAY=( 01 02 03 05 09 12 18 26 29 )

for i in `print -O $TESTARRAY`;do
  echo $i
  sleep 1
done


exit

Wahrscheinlich gibt es aber auch hier eine elegantere Methode.
Danke auf jeden Fall fuer Deine Idee.


CAT
 

cat1510

Well-Known Member
Sorry natuerlich sollte es die zsh sein...
War wohl ein freud'scher Versprecher. Ich schreibe was mit zsh fuer zfs.
Sind aber auch eine ganze Menge Z's die Tage... :)


Vieleicht kann /mag ein Moderator den Titel aendern.
Ich kann ja nur den Text editieren.


CAT
 
Oben