Wie reverse-Array in Bash Online-FOR-Schleife?
Wie kann ich die Reihenfolge umkehren, in denen ich eine for-Schleife für ein array definiert
Zum Durchlaufen des Arrays, die ich bin, dies zu tun:
$ export MYARRAY=("one" "two" "three" "four")
$ for i in ${MYARRAY[@]}; do echo $i;done
one
two
three
four
Gibt es eine Funktion, wo kann ich die Reihenfolge der array?
Ein Gedanke, den ich hatte, ist die Erzeugung einer Sequenz von invertierten Indizes und nennen Sie die Elemente mithilfe dieser umgekehrte index, aber vielleicht gibt es eine schnellere alternative, oder zumindest einfacher zu Lesen.
InformationsquelleAutor der Frage pedrosaurio | 2012-11-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie den C-style for-Schleife:
Für ein array mit "Löcher", die die Anzahl der Elemente
${#arr[@]}
entspricht nicht den index des letzten Elements. Sie können erstellen Sie ein array von Indizes, und gehen Sie rückwärts auf die gleiche Weise:InformationsquelleAutor der Antwort choroba
Können Sie tacdas ist das Gegenteil von
cat
im Sinne, dass es storniert den Zeilen.InformationsquelleAutor der Antwort bereal
Diese behandeln soll, die alle möglichen array, denke ich.
Wenn Sie daran interessiert sind, was dort passiert, schlage ich vor, Sie haben einen Blick hier ersten. Dann vielleicht hierauf jeden Fall hierund, wenn Sie die Zeit haben, hier und hier.
In all diesen Antworten, die ich diskutieren verschiedene
Aspekte des hier-Dokuments (und viele andere), die Sie verwenden können, zu Ihrem Vorteil. Zum Beispiel Diskutiere ich zweimal bewerten, Variablen, was getan wird, oben, und in einem deklarieren eine Funktion, die Global deklariert eine andere Funktion mit dem Namen
"_$1"
in nur 5 oder 6 Zeilen, von denen die meisten wurden_$1() { func body ; }
. Es ist ziemlich praktisch, wenn Sie es richtig zu verwenden.Bezug auf die auto-switch zwischen
bash/zsh,
gut, dass ist etwas anderes, aber auch sehr einfach. Sehen hier.InformationsquelleAutor der Antwort mikeserv
Wie wäre es damit:
Ausgabe:
Einschränkung: funktioniert nicht, wenn array-Zeilenumbrüche enthalten.
Als Problemumgehung können Sie zu implementieren Funktion:
und verwenden Sie es auf diese Weise:
InformationsquelleAutor der Antwort Alek
Einfach als string:
5 4 3 2 1
Möchtest du die array-syntax??:
5 4 3 2 1
InformationsquelleAutor der Antwort Johan Snowgoose
Wenn Sie sprechen über eine sequentielle numerische array (sagen wir löschen die bash-history) können Sie einfach diese Liste in umgekehrter Reihenfolge zum Beispiel:
Ich erkennen, dass dies eine Art off-topic und ich entschuldige mich dafür, aber ich dachte mir, dass es wohl erwähnenswert.
InformationsquelleAutor der Antwort Robert