Bash: Array umgekehrt ausgeben

04/02/2008 - 11:31 von Michael Schmarck | Report spam
Hallo.

Wie kann ich in Bash 3.2 am einfachsten den komletten Inhalt eines
Arrays "rückwàrts" ausgeben?

Bsp:

dirs=(/ /var /u01 /u02 /u03 /opt)

Vorwàrts kann das Array ganz einfach so ausgegeben werden:

echo ${dirs[*]}

Nun möchte ich den Inhalt aber "rückwàrts" haben. Dh., ich hàtte
gerne folgendes Ergebnis:

/opt /u03 /u02 /u01 /var /

Folgendes Funktioniert:

for ((idx=(${#dirs[*]}-1); idx>=0; idx--)); do
echo ${dirs[$idx]}
done

Aber geht's auch irgendwie einfacher?

Danke sehr,
Michael
 

Lesen sie die antworten

#1 Erkan Yanar
04/02/2008 - 13:26 | Warnen spam
Michael Schmarck wrote:
Hallo.


[snip]

Folgendes Funktioniert:

for ((idx=(${#dirs[*]}-1); idx>=0; idx--)); do
echo ${dirs[$idx]}
done

Aber geht's auch irgendwie einfacher?




In GNU-land:

Eigentlich sollte folgendes klappen:

echo ${dirs[*]}| tac --separator=' '

aber zumindest meine coreutils habe da wohl einen Bug. Folgendes
wiederum geht:

echo ${dirs[*]}| tr ' ' ''| tac

tschazu
erkan


über den grenzen muß die freiheit wohl wolkenlos sein

Ähnliche fragen