array in der bash

E

ebel

Jungspund
Hallo,
ich bin in der bash-Programmierung eher noch Anfänger. Also verzeiht mir bitte diese Frage. Lasse mich auch gerne auf ein entsprechendes Manual verweisen.

Ich möchte auf ein bestimmtes Elemnt einer Liste zugreifen.

Einen string z.B. woerter="bla blup blip" kann ich wie ein array mit einer for Schleife durchlaufen.
Code:
for wort in $woerter; do echo $wort;done

Jetzt würde ich mir wünschen wie in einem array auch auf die Elemnete mit einem Index zugreigfen zu können. Ist das irgendwie möglich? Muss ich vorher splitten?

Vielen Dank im voraus
Gruß
ebel
 
Klar geht das.

Copy & Paste einfach mal folgenden Einzeiler in die Konsole:

Code:
 woerter=("bla" "blu" "bli"); for((i=0;i<${#woerter};i++)); do echo ${woerter[$i]};done
 
string in array umwandeln (casting)

Hallo supersucker,

vielen Dank für Deine fixe Anwort. Ich will jetzt eigentlich nur noch den string
woerter="bla blu bli" in ein array umwandeln (casting).Dann habe ich's. Das sollte doch aber mit declare möglich sein, oder?

So was wie
Code:
woerter="bla blu bli";declare -a woerter
funktioniert leider nicht

Gruß
ebel

Klar geht das.

Copy & Paste einfach mal folgenden Einzeiler in die Konsole:

Code:
 woerter=("bla" "blu" "bli"); for((i=0;i<${#woerter};i++)); do echo ${woerter[$i]};done
 
Schau's dir mal an:
Code:
#!/bin/bash

TEST=(a b c d e f g h)
for i in ${TEST[@]}
do
  echo $i
done

echo ${TEST[4-1]}
 
Achtung das "woerter" Beispeil klappt nur weil das erste Wort auch 3 Zeichen hat

Hallo Supersucker,

dank für Deinen Tipp aufbauend darauf habe ich es dann hin bekommen:

Code:
 woerter=("bla" "blu" "bli"); for((i=0;i<${#woerter};i++)); do echo ${woerter[$i]};done
Code:
woerter=("blah" "blu" "bli"); for((i=0;i<${#woerter};i++)); do echo ${woerter[$i]};done
liefert zusätzlich eine Leerzeile, mit Ergänzung [*] hinter woerter geht es aber korrekt:

Code:
woerter=("blah" "blu" "bli"); for((i=0;i<${#woerter[*]};i++)); do echo ${woerter[$i]};done
liefert das gewünschte Ergebnis
 

Ähnliche Themen

Telefoninterview (Wie sich auf Bash-Shell-Fragen vorbereiten?)

Samba 4 Gast Zugang unter Ubuntu funktioniert nicht

dovecot und postfix Konfiguration Problem

Anzahl Elemente in Array hochzählen

bash: Fehlermeldung und Werte in Array sortieren?

Zurück
Oben