ubuntuusers.de

bash Array

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Hello_World

Anmeldungsdatum:
13. Juni 2006

Beiträge: 3620

new1 schrieb:

"KLATSCH AN DIE STIRN"

Dieses Verhalten ist der Normalzustand beim Schreiben von Shell-Scripten.

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4673

Wohnort: Berlin

@Hello World: Aber nur wenn's gut läuft. Sonst ist Haareraufen und in die Tischkante beissen nicht unüblich. 😉

Burki

Avatar von Burki

Anmeldungsdatum:
26. Januar 2007

Beiträge: 219

Hallo! Ich habe das gleiche Problem gehabt und habe die Lösung übernommen.

Testweise wollte ich mir dann das Ergebnis dann ausgeben lassen.

1
2
3
4
5
6
7
8
#/bin/bash

i=0
cat file1 | while read var1; do
    array[$((i++))]="$var1"
done

echo ${array[1]}

Allerdings kriege ich kein Ergebnis und mein gedit "highlighted" das auch ganz anders.

Ungültiges Makro

Dieses Makro ist nicht verfügbar

Weiss jemand Rat?

Vain

Avatar von Vain

Anmeldungsdatum:
12. April 2008

Beiträge: 2505

Hallo. ☺

Hello World hat die Lösung dafür schon aufgeschrieben.

Hello World schrieb:

Wenn Du, wie von Lunar bereits vorgeschlagen, anstelle von cat eine Shell-Umleitung verwendest, wird die while-Schleife nicht in einer Subshell ausgeführt.

Also so, wie oben von Lunar gepostet:

1
2
3
4
5
6
7
8
#!/bin/bash

i=0
while read var1; do
    array[$((i++))]="$var1"
done < file1

echo ${array[1]}

Übrigens fehlt da bei dir ein Ausrufezeichen in der Shebang-Zeile. 😉

Burki

Avatar von Burki

Anmeldungsdatum:
26. Januar 2007

Beiträge: 219

Danke. Ich hatte die andere Version vorher ausprobiert. Hatte sie aber offengesagt nicht verstanden, weil ich die Modalitäten des direkten Einlesens der Datei nicht gerafft habe. Bin noch in den ersten Programmier-Gehversuchen. Angewendet auf mein Beispiel bin ich nun hintergestiegen.

Jetzt klappt's auch. Das highlighten ist nachwievor falsch, aber die Ausgabe geht. Da war der Fehler wohl in der Schleife.

Danke nochmal.

Burki

Antworten |